在 Kotlin 的 AsyncTask 中启动新活动

Posted

技术标签:

【中文标题】在 Kotlin 的 AsyncTask 中启动新活动【英文标题】:Launch new activity in AsyncTask in Kotlin 【发布时间】:2020-08-29 00:24:25 【问题描述】:

我想在 onPostExecute 方法中使用 Kotlin 从 AsyncTask 启动一个 Activity 或刷新当前一个,但我不知道该怎么做。

我试图实现一个接口,但卡住了。

界面

 public interface inter 
        void newActivity(Activity activity);
    

主类

override fun onPostExecute(result: String?) 
        super.onPostExecute(result)
        ..code here
        inter 
        


override fun newActivity(activity: Activity?) 
            val intent = Intent(this, Activity::class.java)
            startActivity(intent)

【问题讨论】:

【参考方案1】:

只需 onPostExecute

private class yourTask(context:Context): AsyncTask<Void, Void, Void>() 

     var context: Context = context;

    override fun onPostExecute(result: Void?) 
        super.onPostExecute(result)
        val intent = Intent(context, ChangePasswordActivity::class.java)
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
        context.startActivity(intent)
    


开始任务为:

yourTask(applicationContext).execute()

【讨论】:

我试过了,但由于上下文的原因,我得到了一个错误

以上是关于在 Kotlin 的 AsyncTask 中启动新活动的主要内容,如果未能解决你的问题,请参考以下文章

在 AsyncTask (Kotlin) 上使用 filesDir

AsyncTask 作为 kotlin 协程

Android AsyncTask无法运行

使用 Kotlin 显示来自 AsyncTask 的 Toast 消息

Android AsyncTask 不运行

IOException: AsyncTask Image Download Kotlin Android (Bad File Descriptor)