【问题标题】:BroadCast Receiver calling intent after some time android一段时间后,BroadCast Receiver 调用意图 android
【发布时间】:2012-04-16 11:25:31
【问题描述】:
public class myReceiver extends BroadcastReceiver {
    public static boolean wasScreenOn = true;

    @Override
    public void onReceive(final Context context, Intent recievedIntent) {

        if (recievedIntent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
            wasScreenOn = false;

            Intent intent = new Intent(context,
                    myActivity.class);
            intent.setAction(Intent.ACTION_MAIN);
            intent.setFlags(Intent.FLAG_ACTIVITY_NO_USER_ACTION);
            intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
            intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
            intent.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
            context.startActivity(intent
                    .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));

        } else if (recievedIntent.getAction().equals(Intent.ACTION_SCREEN_ON)) {
            wasScreenOn = true;
        }
    }
}

action screen on 被调用后的activity显示。

myActivity.class

使用 KeyguardManager 禁用Keyguard 并启动服务。在服务中注册接收器。现在当用户关闭设备然后调用 ACTION_SCREEN_OFF 并且当点击主页按钮然后调用 ACTION_SCREEN_ON 但是当我多次按下主页按钮时会出现问题。

【问题讨论】:

  • 信息不足,请详细说明。
  • @khushi:感谢更新。您尝试使用ACTION_USER_PRESENT 而不是ACTION_SCREEN_ON 吗?
  • ACTION_USER_PRESENT 和 ACTION_SCREEN_ON 有什么不同,我尝试了 ACTION_USER_PRESENT 但没有任何效果。
  • @khushi : ACTION_USER_PRESENT 仅在设备唤醒一次后触发动作
  • 好的。但在我的情况下,我的应用程序运行完美,但是当我多次按下主页按钮时会出现问题。当我多次按下主页按钮时,然后当关闭屏幕并启动屏幕按下主页按钮然后首先显示主屏幕,然后是我的应用程序。

标签: android


【解决方案1】:

在receiver标签的manifest中添加一行

接收者 android:name=".MyBoardCast" android:enabled="true"

【讨论】:

    猜你喜欢
    • 2011-03-12
    • 1970-01-01
    • 2013-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-10
    • 1970-01-01
    相关资源
    最近更新 更多