从任务管理器删除应用程序会导致广播

时间:2014-12-29 12:22:09

标签: android broadcastreceiver taskmanager

我正在创建一个检测Power Key按下的应用程序(前景和背景)。我为此使用了以下BroadcastReceiver

public void onReceive(Context arg0, Intent arg1) {
    // TODO Auto-generated method stub
    String action = arg1.getAction();

    if (action.equals(Intent.ACTION_SCREEN_OFF)
            || action.equals(Intent.ACTION_SCREEN_ON)) {
        Toast.makeText(context, "DETECTED", 5000).show();
    }
}

我从我的MainActivity开始广播

Intent i = new Intent(MainActivity.this, Receive.class);
sendBroadcast(i);

这在前台和后台都可以正常工作,但是当我从任务管理器中移除我的应用程序时,它不再能够检测到它。此外,这适用于其他手机。

我认为这可能只适用于我的手机,但是我的手机中的应用程序即使从任务管理器中删除也会检测到电源按键(因此,它也可以在我的手机)

1 个答案:

答案 0 :(得分:0)

您必须在清单文件中定义所有操作。为什么需要它,因为Android系统在安装应用程序时维护了intent-filters列表。即使应用程序未处于运行状态,您也应该使用staic intent-filter进行广播。

您已使用dynamin intent-filter注册。仅当您希望在应用程序处于运行状态时处理广播时,才应使用此选项。