![](/img/trans.png)
[英]Run a method with View Parameter oncreate Android studio
[英]AsyncTask in Android onCreate method needs to run twice and update accordingly
因此,我对AsyncTasks的工作方式没有很好的了解,所以这可能就是为什么我当前的代码无法正常工作的原因。 如果我的onCreate方法中运行了一个AsyncTask,例如:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new UpdateSpinnerTask().execute(MainActivity.DUMMY_URI);
}
然后它可以正常运行。 然后,如果我单击一个按钮转到另一个活动(ListView),则基本上我一直在做的是重新启动MainActivity,以便重新创建视图。 现在,微调器任务随后将无法正常工作。 就像它没有执行后执行中应该做的那样。
它通常看起来像:
private class UpdateSpinnerTask extends AsyncTask<String, Void, List<String>> {
@Override
protected List<String> doInBackground(String... url) {
}
}
所以我的问题是,如果我想在onCreate中多次运行AsyncTask中的内容,这可能吗?
您是否希望从另一个Activity返回时再次运行UpdateSpinnerTask
? 好吧,您应该将UpdateSpinnerTask
调用代码从onCreate()
移到onResume()
。 因为在进入Activity时不会每次都调用onCreate()
。 您应该对Activity的生命周期了解更多。
这与在onCreate()
两次运行AsyncTask
无关。 这是关于在2个活动生命周期中产生2个单独的后台线程(重新使用同一AsyncTask对象没有多大意义)。
如果您在第二次调用execute()
遇到麻烦,请尝试执行executeOnExecutor()
(请注意,您只能对API 11及更高版本执行此操作)
另外,如果您可以澄清问题(请参阅我的评论),也许我可以给出更好的答案
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.