从服务启动的活动失去了额外的"从捆绑

时间:2016-07-08 10:49:55

标签: android android-activity android-bundle

调用代码(在服务中运行):

TextActivity

被叫代码(在@Override protected void onCreate(Bundle bundle) { super.onCreate(bundle); Log.d(TAG, "" + bundle.getInt("text_seq")) ... 中):

bundle.getInt()

实际上整个包都丢失了 - 上面的代码在调用where时会抛出一个NPE。

我确定我错过了一些明显的东西......

4 个答案:

答案 0 :(得分:5)

您正在阅读的捆绑不是为了这个目的。作为per docs

void onCreate (Bundle savedInstanceState)
  

Bundle:如果之前正在重新初始化活动   关闭然后这个Bundle包含它最近提供的数据   在onSaveInstanceState(Bundle)中。注意:否则为空。

如果你需要额外的东西,你需要打电话:

Bundle extras = getIntent().getExtra();

然后你可以尝试获取你的价值观:

int myVal = extras.getInt(key);

或者您可以尝试使用:

int myVal = getIntent().getIntExtra(key, defaultVal);

答案 1 :(得分:0)

您是否尝试过使用getIntent().getInt("text_seq")

答案 2 :(得分:0)

像这样获取你的包

@Override
protected void onCreate(Bundle bundle) {
    super.onCreate(bundle);
   Bundle intentBundle = getIntent().getExtra();
    Log.d(TAG, "" + intentBundle.getExtra(“text_seq"))
}

答案 3 :(得分:0)

您正在使用的套件是savedInstanceState,您可以阅读更多相关信息here

您需要使用的是:

Bundle intentBundle = getIntent().getExtra();

由于您已将该捆绑包添加到Intent个附加内容,因此您需要从getIntent().getExtra()

中获取该附加内容

你也可以得到这样的单品:

getIntent().getIntExtra("text_seq", defaultValToReturn);