Activity 的 OnCreate 中的 getIntent() 是否可以从 AlarmManager 获取 PendingIntent 传递的额外数据以用于自身 Activity 重启?

Can getIntent() in OnCreate of Activity get the Extra data pass by PendingIntent from AlarmManager for self Activity restart?

10 秒后启动 alarmManager 的代码

Intent intent=new Intent(SelfUpdateByScanQrCodeEventActivity.getContext(), MainActivity.class);
            intent.putExtra("startInstallUpdateApk",true);
            PendingIntent pendingIntent = PendingIntent.getBroadcast(
                    SelfUpdateByScanQrCodeEventActivity.getContext().getApplicationContext(), createRestartAgentAlarmManagerRequestCode, intent, PendingIntent.FLAG_UPDATE_CURRENT);
            AlarmManager alarmManager = (AlarmManager) SelfUpdateByScanQrCodeEventActivity.getContext().getSystemService(ALARM_SERVICE);
            Calendar cal = Calendar.getInstance();
            cal.add(Calendar.SECOND,delaySecTimeToRestartAgent);
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                alarmManager.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP,cal.getTimeInMillis(),pendingIntent);
                
            }else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
                alarmManager.setExact(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pendingIntent);
               
            } else {
                alarmManager.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pendingIntent);
                
            }

MainActivity的cod

public class MainActivity extends Activity {
@Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_preparation);
        Bundle extras = this.getIntent().getExtras();
        boolean startInstallUpdateApk = extras.getBoolean("startInstallUpdateApk");
}
}

MainActivity 调用后的onCreate startInstallUpdateApk 能拿到key吗?

简单回答你的问题

Can I get the key,"startInstallUpdateApk" , onCreate after MainActivity called?

是“是”。然而...

您的代码在应调用 PendingIntent.getActivity() 时却调用了 PendingIntent.getBroadcast()。当警报触发时,现在什么也不会发生,因为 Activity Intent 和广播 Intent 是两个完全不同的东西。