2

我有 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
    }
}
4

1 回答 1

0

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

是的。

于 2010-10-03T12:43:51.703 回答