我有一个活动 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' 但我希望是 A -> 设置闹钟 -> 睡眠 -> 唤醒 -> A
我对此一无所知,非常感谢。