重新启动后我得到一个奇怪的错误,当我关闭和打开屏幕时,按下主屏幕按钮会导致黑屏,我需要重新启动才能再次控制我的手机。
我正在使用BroadcastReceiver来了解屏幕何时开启以及执行某些逻辑。
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("android.intent.action.SCREEN_OFF")) {
if (context.getSharedPreferences(Constant.SETTING_PREFERENCE, 0)
.getBoolean(Constant.SETTING_LOCKSCREEN_STATUS, false)) {
Intent intent1 = new Intent(context, LockScreenActivity.class);
intent1.addFlags(0x10000000);
context.startActivity(intent1);
}
} else {
if (intent.getAction().equals("android.intent.action.SCREEN_ON")) {
if (context
.getSharedPreferences(Constant.SETTING_PREFERENCE, 0)
.getBoolean(Constant.SETTING_LOCKSCREEN_STATUS, false)) {
(new Intent(context, TestActivity.class))
.addFlags(0x10000000);
}
return;
}
if (intent.getAction().equals(
"android.intent.action.BOOT_COMPLETED")) {
if (context
.getSharedPreferences(Constant.SETTING_PREFERENCE, 0)
.getBoolean(Constant.SETTING_LOCKSCREEN_STATUS, false)) {
Intent intent2 = new Intent(context,
TestActivity.class);
intent2.addFlags(0x10000000);
context.startActivity(intent2);
}
return;
}
}
我有时可以重现这个bug,从logcat我可以看到:Waited long enough for: ServiceRecord
但服务正在运行。不知道如何解决这种情况。
答案 0 :(得分:1)
您创建了此意图但未启动它。此代码无效:
(new Intent(context, TestActivity.class))
.addFlags(0x10000000);