我正在尝试将一些API数据提取到我的应用中,我有两项活动。第一个是启动画面(就像谷歌在你的应用程序加载时使用的那些),我想知道在哪里调用finish()来结束活动。
public class SplashScreen extends AppCompatActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AsyncDataFetch fetch = new AsyncDataFetch();
fetch.setContext(this);
fetch.execute();
}
}
我已将所有代码都移到AsyncTask中,所以我不会阻止ui线程,现在我不能在那里调用finish(),或者我不知道如何。
为什么我会在那里为我的应用程序调用完成而不是在我可能会问的活动上调用它...这是因为如果我这样做会产生某种故障,因为我的API提取需要大约1秒并且显示和关闭此活动需要更少。
那么,我应该在哪里调用finish()以及如何调用?
答案 0 :(得分:2)
从doInBackground()获取结果后,应该在Async Task的onPostExecute中调用finish()
。
答案 1 :(得分:0)
如果你想要完成的活动是一个泼水,你应该将finish()
放在postExecute()
,这应该在你的asyncsTask中被覆盖。