0

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

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

意图=新意图(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"/>

请提供任何帮助。

4

1 回答 1

1

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

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

于 2013-01-15T06:39:46.623 回答