在 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>