后台应用程序无效

时间:2012-08-31 08:18:21

标签: android

我有一个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();
        }
    }

但它不起作用。请有人给我一些想法。

1 个答案:

答案 0 :(得分:0)

您无法确定您的应用程序是否在后台运行,因此在Activity的onPause方法中注册BroadcastReceiver是一般的不良做法。

您应该使用Service代替