在 android 中启动后是否删除了所有 Pending Intent?
Does all Pending Intent is deleted after boot in android?
我不能使用请求 ID 再次检索它吗?
喜欢使用:
pendingIntent = PendingIntent.getBroadcast(this, RequestID, intent, PendingIntent.FLAG_UPDATE_CURRENT);
PS: 我在 PendingIntent 中有所有 pendingExtra,否则我必须再次从数据库中获取!
Does all Pending Intent is deleted after boot in android?
是的。它们仅保存在核心 OS 进程中的 RAM 中。
Can't I retrieve it again using Request ID?
重启后不会。
是的,所有 PendingIntents 将在您重启后删除。但是您可以在 phone 启动时重新创建它们。 This tutorial here 很好地解释了如何处理启动侦听器。
定义一个 class 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>
我不能使用请求 ID 再次检索它吗?
喜欢使用:
pendingIntent = PendingIntent.getBroadcast(this, RequestID, intent, PendingIntent.FLAG_UPDATE_CURRENT);
PS: 我在 PendingIntent 中有所有 pendingExtra,否则我必须再次从数据库中获取!
Does all Pending Intent is deleted after boot in android?
是的。它们仅保存在核心 OS 进程中的 RAM 中。
Can't I retrieve it again using Request ID?
重启后不会。
是的,所有 PendingIntents 将在您重启后删除。但是您可以在 phone 启动时重新创建它们。 This tutorial here 很好地解释了如何处理启动侦听器。
定义一个 class 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>