获取意图为null的bundle,从helper对象发出Intent

时间:2014-09-10 15:25:56

标签: android android-intent

我发送的意图是使用辅助对象从广播接收器启动活动,如下所示:

广播接收器代码:     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");
 }
}

为什么我的捆绑包为空?

3 个答案:

答案 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);
}