我想以异步方式执行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。但是,我认为可能存在更好的一个。
答案 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