收到ACTION_SCREEN_ON后,活动不会启动

时间:2010-01-03 07:40:31

标签: android

我正在创建一个Lock Replacement应用程序,显然要求它有一个启动ACTION_SCREEN_ON的活动。这些是我的代码中与之相关的部分:

public class StartupBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
    Intent startupIntent = new Intent(context, Lockdown.class); // substitute with your launcher class
    startupIntent.addCategory(Intent.CATEGORY_HOME);
    startupIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    context.startActivity(startupIntent);
}

}

由于无法从Manifest调用ACTION_SCREEN_ON,因此我在主要活动中动态注册了它。

这是我的主类(Lockdown)的onCreate函数

IntentFilter filter = new IntentFilter (Intent.ACTION_SCREEN_ON);

BroadcastReceiver mReceiver = new StartupBroadcastReceiver();
    registerReceiver(mReceiver, filter);

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

我找到了这个问题的答案:

android:launchMode="singleInstance"<category android:name="android.intent.category.DEFAULT" />添加到主要活动的清单中。您还必须将此标志添加到接收器startupIntent.setFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK);