我有一个活动A,我必须通过AlarmManager再次调用活动A.电话进入睡眠状态后30分钟后由告警管理员唤醒。代码如下:
public void wakeup(){
Intent i = new Intent(mcontext, activity_form.class);
PendingIntent operation = PendingIntent.getActivity(mcontext, 0, i, Intent.FLAG_ACTIVITY_NEW_TASK);
Calendar cal = Calendar.getInstance();
cal.add(Calendar.MINUTE, 30);
AlarmManager am = (AlarmManager)mcontext.getSystemService(Activity.ALARM_SERVICE);
am.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), operation);
}
public void sleep(){
pm = (PowerManager)mcontext.getSystemService(Context.POWER_SERVICE);
pm.goToSleep(SystemClock.uptimeMillis());
}
但是,我不想再次创建活动A,所以我希望我的活动是单身,我在我的Manifest.xml中添加它
android:launchMode="singleInstance"
or
android:launchMode="singleTask"
30分钟后,我在logcat看到唤醒电话,但电话没有唤醒。如果我删除android:launchMode,它没关系并成功唤醒。但是,我将再次创建活动A.
A - >设置闹钟 - >睡觉 - >醒来 - > '但我的希望是A - >设置闹钟 - >睡觉 - >醒来 - >一个