【问题标题】:onReceive() method not opening application while device is in sleep mode..?onReceive() 方法在设备处于睡眠模式时未打开应用程序..?
【发布时间】:2013-01-15 06:35:43
【问题描述】:

你好朋友我有一个问题... 实际上我使用此代码在特定时间打开我的应用程序..应用程序运行良好,但是当设备处于睡眠模式时无法正常工作..??

public class MyBroadCastReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context ctx, Intent intent) {
        Intent intent = new Intent(ctx, ActivityMain.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
        ctx.startActivity(intent);
    }

}

ActivityMain.java

intent = new Intent(getBaseContext(), MyBroadCastReceiver.class);

        pendingIntent = PendingIntent.getBroadcast(
                getBaseContext(), REQ_CODE, intent, 0);

        alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
        alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()
                + (60 * 1000), pendingIntent);

在设备睡眠模式下不起作用,BroadCastReceiver Calss 无法打开 MainActivity 类。

我已在清单中给予许可

<uses-permission android:name="android.permission.WAKE_LOCK"/>

请提供任何帮助。

【问题讨论】:

  • 你注册广播了吗?也是仅在设备休眠时发生,还是在任何情况下都不起作用?
  • ya ya 我已经注册了广播

标签: android broadcastreceiver alarmmanager android-alarms android-broadcast


【解决方案1】:

广播接收器的唤醒锁只能保证在 onReceive 方法的持续时间内保持手机处于唤醒状态。如果您需要在该方法之外进行工作,则需要获取/管理另一个唤醒锁。

为此目的存在一个 Commonsware 库。看看:https://github.com/commonsguy/cwac-wakeful/blob/master/README.markdown

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多