按Home键时出现黑屏

时间:2014-12-22 13:19:43

标签: android android-service

重新启动后我得到一个奇怪的错误,当我关闭和打开屏幕时,按下主屏幕按钮会导致黑屏,我需要重新启动才能再次控制我的手机。

我正在使用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但服务正在运行。不知道如何解决这种情况。

1 个答案:

答案 0 :(得分:1)

您创建了此意图但未启动它。此代码无效:

                (new Intent(context, TestActivity.class))
                        .addFlags(0x10000000);