putExtra以异步方式

时间:2014-03-19 09:34:22

标签: android

我想以异步方式执行startActivity(intent)intent.putExtra()。 例如

public class SomeActivity extends Activity {
    // listener for button
    public void onSomeButtonClicked(View ignored) {
        final Intent intent;
        // instantiate intent

        new AsyncTask<Void, Void, String>(){
            protected String doInBackground(Void... ignored) {
                // do heavy task
                return "didALotOfWork";
            }
            protected void onPostExecute(String resultOfHeavyTask) {
                intent.putExtra("key", resultOfHeavyTask);
            }
        }.exexute(null);
        startActivity(intent);
    }
}

在上面的代码中,我不确定putExtra之前是startActivity

此代码有问题吗? 以异步方式在活动之间传递数据的最佳解决方案是什么?

我提出的方法是编辑SharedPreference。但是,我认为可能存在更好的一个。

1 个答案:

答案 0 :(得分:0)

看起来你最有可能得到Null指针Exception。

在OnPostExecute中初始化Intent并在同一方法中添加startActivity。检查以下代码

protected void onPostExecute(String resultOfHeavyTask) {
    Intent intent = new Intent(context, <class>);
    intent.putExtra("key", resultOfHeavyTask);
    startActivity(intent);
}

这应该有效。 Cheerz