关于活动生命周期的问题:onNewIntent / onSaveInstanceState

时间:2010-10-02 21:10:54

标签: android android-lifecycle

我有ActivityLanding,它调用一个名为ActivityFolder的活动。在意图中我使用了putExtra(“folderId”,“...”)(我知道folderId不是最好的例子)

我可以将它存储到一个变量并使用它就好了但是如果最终我的活动被杀死以节省内存我可能会丢失folderId。当我的活动再次启动时,将是 意图的“额外”得到保留?下面的代码能正常工作吗?

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.folder);
    onNewIntent(getIntent());
}
@Override
protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);
    setIntent(intent);
    String folderId = intent.getStringExtra("folderId"); // Might not be all digits
    // load from server and fill in the blanks
}

如果 被保留,那么我可以使用ASyncTask更改它并且它仍能正常工作吗?

private class MyAsyncTask extends AsyncTask<String, Object, HashMap<String, Object>> {

.......................................
.......................................
.......................................
    @Override
    protected void onPostExecute(HashMap<String, Object> result) {
        if (this.isCancelled())
            return;
        .....................
        .....................
        .....................
        getIntent().putStringExtra("folderId", ""); // The server wants us to change what folder we are looking at
    }
}

1 个答案:

答案 0 :(得分:0)

  

当我的活动再次启动时,意图的“额外”会被保留吗?