我有一个Android应用程序在当应用程序进入后台和耳机从手机报警开始删除。前景很好,但当应用程序进入后台时它不起作用。我在活动上编写代码onPause()如下
@Override
protected void onPause() {
try{
super.onPause();
registerReceiver(new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.hasExtra("state")) {
int state = intent.getIntExtra("state", 0);
if (isHeadPhoneAttached && state == 0) {
isHeadPhoneAttached = false;
if (isTriggered) {
createNotification();
initTimerCounter();
makeToat();
/*handler.removeCallbacks(sendUpdatesToUI);*/
/*callTriggerActivity();*/
/*showDialog(Headphone_DIALOG);*/
}
} else if (!isHeadPhoneAttached && state == 1) {
isHeadPhoneAttached = true;
}
}
}
}, new IntentFilter(Intent.ACTION_HEADSET_PLUG));
/*createNotification();
initTimerCounter() ;*/
}
catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
但它不起作用。请有人给我一些想法。
答案 0 :(得分:0)
您无法确定您的应用程序是否在后台运行,因此在Activity的onPause方法中注册BroadcastReceiver是一般的不良做法。
您应该使用Service代替