如何解决Activity 的 OnCreate 中的 getIntent() 能否从 AlarmManager 获取 PendingIntent 传递的额外数据,以便自我 Activity 重启?
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,pendingIntent);
} else {
alarmManager.set(AlarmManager.RTC_WAKEUP,pendingIntent);
}
MainActivity的代码
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 后获取密钥、startInstallUpdateApk 和 onCreate 吗?
解决方法
简单回答您的问题
我可以在调用 onCreate
后获取密钥 "startInstallUpdateApk",MainActivity
吗?
是“是”。不过……
您的代码在应该调用 PendingIntent.getBroadcast()
的时候却调用了 PendingIntent.getActivity()
。当警报触发时,现在什么都不会发生,因为 Activity Intent
和广播 Intent
是两种完全不同的事物。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。