java - 是否调用 finish() ?

标签 java android android-asynctask

我正在尝试将一些 API 数据获取到我的应用程序,并且我有两个 Activity 。第一个是启动屏幕(就像加载应用程序时谷歌使用的那样),我想知道在哪里调用 finish() 来结束 Activity 。

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(),或者我不知道如何调用。

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

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

最佳答案

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

关于java - 是否调用 finish() ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45124001/

相关文章:

java - 使用 Java 获取 Excel 信息

java - 如何在 java 中打印/记录字符串数组?

Java - 扫描仪导致循环运行两次

android - 如何在android asynctask中使用输入流作为参数?

android - 在运行多个 AsyncTasks 时遇到挂起线程的问题

Java客户端从C服务器接收,但C服务器不从Java客户端接收

安卓 ListView

当我尝试使用 espresso 填充多个编辑文本时,抛出 android.support.test.espresso.InjectEventSecurityException

android - onStartJob 和 onStopJob 在 android 中无法运行后台线程

android - facebook分享权限申请审核android