在广播接收器中,我想启动我的应用程序(Activity)并传递一些数据。
我的问题是额外的数据似乎没有传递到Activity中。我正在尝试在onNewIntent(Intent i)
函数中获取数据。
有什么建议吗?
这是我在BroadcastReceiver中当前的尝试:
Intent intSlider = new Intent();
intSlider.setClass(UAirship.shared().getApplicationContext(), SliderMenuActivity.class);
intSlider.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intSlider.putExtra("action", ScreensEnum.Object);
intSlider.putExtra("objectId", objectId);
intSlider.putExtra("objectCode", objectCode);
intSlider.putExtra("userId", userId);
UAirship.shared().getApplicationContext().startActivity(intSlider);
编辑 - 添加在onNewIntent()和onCreate()中使用的代码
当应用程序没有在运行时,下面的代码在onCreate()
中运行得很好。当应用程序已经在运行时,从onNewIntent()
函数中使用相同的代码不起作用(即没有额外信息)。
Intent intent = getIntent();
if(intent.hasExtra("objectId")) {
loadDetail(intent.getStringExtra("objectId"), "2w232");
}
onNewIntent
方法被调用了吗?您为SliderMenuActivity
指定了什么launchMode
? - Vladimir MironovonNewIntent
方法? - Vladimir Mironov