【发布时间】:2015-10-02 17:05:08
【问题描述】:
我有一个 Activity,在清单中设置了以下特殊属性
<activity
android:name=".LightUp"
android:excludeFromRecents="true"
android:launchMode="singleInstance"
android:noHistory="true"
android:process=":listener"
android:taskAffinity="" >
</activity>
在这个活动中,我正在安排一个 AlarmManager 使用这个 PendingIntent 在某个时间后调用自己。 AlarmManager 是必要的,因为当此活动显示在屏幕上时手机会进入睡眠状态,我不想保持唤醒锁。
pendingIntent = PendingIntent.getActivity(this, 10,
new Intent(this, LightUp.class)
.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT),
PendingIntent.FLAG_UPDATE_CURRENT);
所以当警报管理器触发时,我会像往常一样在 onNewIntent() 函数中获取新的 Intent。这意味着意图正在发生相同的活动。 问题是活动在 onNewIntent 之后被破坏。即使我在 onNewIntent 中完全没有代码,我也可以从日志中看到 onDestroy 无论如何都会被调用。
所以问题是为什么要调用 Destroy?我可以做些什么来保持活动的运行?
【问题讨论】:
标签: android android-activity android-pendingintent