调用 finish() 与否?



我正在尝试将一些 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((,或者我不知道怎么做。

为什么我会在那里为我的应用程序调用 finish,而不是在我的活动中调用它,你可能会问......这是因为如果我这样做,它会产生某种故障,因为我的 API 获取大约需要 1 秒,而显示和关闭此活动所需的时间更少。

那么,我应该在哪里调用 finish(( 以及如何调用?

从doInBackground((获得结果后,您应该在异步任务的onPostExecute中调用finish()

如果你想完成的活动是一个飞溅的srceen,你应该把finish()放在postExecute(),这应该在你的asyncsTask中被覆盖。

最新更新