我无法使用请求ID再次检索它吗?
喜欢使用:
pendingIntent = PendingIntent.getBroadcast(this, RequestID, intent, PendingIntent.FLAG_UPDATE_CURRENT);
PS:我在PendingIntent中拥有所有pendingExtra,否则我必须再次从数据库中获取!
答案 0 :(得分:1)
在android中启动后是否删除了所有Pending Intent?
是。它们仅存储在RAM中,处于核心操作系统过程中。
我无法使用请求ID再次检索它吗?
重启后没有。
答案 1 :(得分:0)
是的,重启后将删除所有PendingIntents。但是,您可以在手机启动时重新创建它们。 This tutorial here在解释如何处理启动监听器方面做得非常好。
按如下方式定义一个类DeviceBootReceiver
,它将在设备启动时运行您的代码(创建PendingIntents或其他任何您想要的东西)。:
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
public class DeviceBootReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED")) {
// Do your thing in here
}
}
}
不要忘记(a)获得许可,(b)在AndroidManifest.xml中声明此接收器:
<application ...>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
...
<receiver android:name=".DeviceBootReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
</application>