我发送的意图是使用辅助对象从广播接收器启动活动,如下所示:
广播接收器代码: MyReceiver扩展了BroadcastReceiver {
onReceive(){
new Helper(this).startMyActivity();
}
我的助手对象中的代码:
Helper{
private Context myContext;
public Helper(Context c){
myContext=c;
}
public void startMyActivity(){
Intent i=new Intent(myContext,MyActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.putExtra("code", 1);
myContext.startActivity(i);
}
}
但是当我尝试在活动MyActivity中提取出包时,我得到空值:
MyActivity extends Activity{
onResume(){
Bundle b=getIntent().getExtras();
int c=b.getInt("code");
}
}
为什么我的捆绑包为空?
答案 0 :(得分:0)
我想,
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
是问题所在。评论该行并尝试它。
或者你可以从
获得价值Intent receiverIntent = getIntent();
int k = receiverIntent.getIntExtra(name, defaultValue)
答案 1 :(得分:0)
尝试使用
int c = getIntent().getIntExtra("code", 0);
答案 2 :(得分:0)
问题是您需要覆盖onNewIntent(Intent)
中的Activity
并明确告诉它使用新的Intent
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);
}