朋友们,我有问题... 实际上我使用此代码在一定时间内打开我的应用程序..应用程序工作正常,但当设备处于睡眠模式不工作.. ??
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"/>
请帮助。
答案 0 :(得分:1)
广播接收器的唤醒锁定仅保证在onReceive方法的持续时间内使手机保持唤醒状态。如果您需要在该方法之外进行工作,则需要获取/管理另一个唤醒锁定。
为此目的存在Commonsware库。看看:https://github.com/commonsguy/cwac-wakeful/blob/master/README.markdown