0
我的应用程序我发送的onTaskRemoved()
方法的广播service
。但我没有得到broadcastReciever
中的broadcast
。这是我的代码安卓没有收到广播
@Override
public void onTaskRemoved(Intent rootIntent) {
super.onTaskRemoved(rootIntent);
Log.e("TaskRemoved","TaskRemoved");
commonSessionManager.setConnected(false);
broadCastUpdate(GymMainActivity.APP_REMOVED_FROM_RECENTS);
}
public void broadCastUpdate(String action){
Intent intent=new Intent();
intent.putExtra(GymMainActivity.APP_REMOVED_FROM_RECENTS,action);
sendBroadcast(intent);
}
private BroadcastReceiver mGattUpdateReciever = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
final String action = intent.getAction();
if (WRONG_DATA.equalsIgnoreCase(action)) {
Toast.makeText(GymMainActivity.this, "Please measure your vitals again", Toast.LENGTH_SHORT).show();
isFalseDataSent = true;
}
if (ACTION_GATT_CONNECTED.equalsIgnoreCase(action)) {
Toast.makeText(GymMainActivity.this, "connected", Toast.LENGTH_SHORT).show();
runOnUiThread(new Runnable() {
@Override
public void run() {
if (!isFinishing()) {
ShowConnectDialog();
}
}
});
} else if (ACTION_GATT_DISCONNECTED.equalsIgnoreCase(action)) {
Toast.makeText(GymMainActivity.this, "disconnected", Toast.LENGTH_SHORT).show();
} else if (ACTION_DATA_AVAILABLE.equalsIgnoreCase(action)) {
connectDialog.dismiss();
String[] result = intent.getStringArrayExtra(EXTRA_DATA);
for (int i = 0; i < result.length; i++) {
Log.e("result " + i, result[i]);
}
Log.e("isDisplayed", isDisplayed + "");
if (!isDisplayed) {
if (isFalseDataSent) {
mBluetoothController.powerOff();
isFalseDataSent = false;
}
commonSessionManager.setConnected(true);
Intent vitalDataIntent = new Intent(GymMainActivity.this, GymVitalDisplayActivity.class);
vitalDataIntent.putExtra("userDataBundle",userDataBundle());
vitalDataIntent.putExtra("vitalData", result);
startActivity(vitalDataIntent);
finish();
isDisplayed = true;
}
}
if(action.equalsIgnoreCase(APP_REMOVED_FROM_RECENTS)){
Toast.makeText(GymMainActivity.this,"APP_REMOVED_FROM_RECENTS",Toast.LENGTH_SHORT).show();
btnScan.setVisibility(View.VISIBLE);
if(btnConnect.getVisibility()==View.VISIBLE){
btnConnect.setVisibility(View.GONE);
}
if(txtConnected.getVisibility()==View.VISIBLE){
txtConnected.setVisibility(View.GONE);
}
}
}
};
private static IntentFilter makeGattUpdateIntentFilter() {
final IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(ACTION_GATT_CONNECTED);
intentFilter.addAction(ACTION_GATT_DISCONNECTED);
intentFilter.addAction(ACTION_DATA_AVAILABLE);
intentFilter.addAction(WRONG_DATA);
intentFilter.addAction(APP_REMOVED_FROM_RECENTS);
return intentFilter;
}
public final static String ACTION_GATT_CONNECTED =
"com.example.demo.le.ACTION_GATT_CONNECTED";
public final static String ACTION_GATT_DISCONNECTED =
"com.example.demo.le.ACTION_GATT_DISCONNECTED";
public final static String ACTION_DATA_AVAILABLE =
"com.example.demo.le.ACTION_DATA_AVAILABLE";
public final static String EXTRA_DATA =
"com.example.demo.le.EXTRA_DATA";
public final static String WRONG_DATA =
"com.example.demo.le.WRONG_DATA";
public final static String APP_REMOVED_FROM_RECENTS="com.example.demo.le.APP_REMOVED_FROM_RECENTS";
我收到的所有广播除了APP_REMOVED_FROM_RECENTS.
你可以发布格式化的代码? –
from API:'如果服务当前正在运行,并且用户已经删除了来自服务应用程序的任务,则调用该服务。如果您已设置ServiceInfo.FLAG_STOP_WITH_TASK,则不会收到此回调;相反,该服务将被简单地停止。“你确定你的应用满足了预期吗? – Opiatefuchs
不,我没有设置ServiceInfo.FLAG_STOP_WITH_TASK –