【发布时间】:2013-03-11 16:39:23
【问题描述】:
在广播接收器中,我想启动我的应用(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? -
嗨,是的 onNewIntent() 被调用。 launchMode 是 singleTask。
-
你能发布你的
onNewIntent方法吗? -
嘿@conor 你有没有得到这个有效的答案?我现在也有同样的问题