从 AsyncTask 中提升 Toast [英] Raising a Toast From AsyncTask

查看:18
本文介绍了从 AsyncTask 中提升 Toast的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试从 asynctask 中发起敬酒,但我无法正确设置参数.我正在从 onProgressUpdate 敬酒,所以我在 UI 线程上,我认为这是正确的.我想我的上下文参数出错了,我应该将什么作为值传入?

I'm trying to raise a toast from asynctask, but I'm having trouble getting my parameters right. I'm toasting from onProgressUpdate, so I'm on the UI thread, which I think is correct. I think I'm going wrong with the context parameter, what should I pass in as a value?

显示下面的代码

    @Override
protected void onProgressUpdate(String... strings){
    Toast toast = Toast.makeText(MainActivity.this, strings[0], Toast.LENGTH_LONG);
    toast.show();
}

MainActivity.this 表示在范围内没有可访问类型 MainActivity 的封闭实例."我不确定要传递什么作为上下文.

MainActivity.this is saying "No enclosing instance of the type MainActivity is accessible in scope." I'm not sure what to pass as a context instead.

谢谢

推荐答案

通过从 MainActivity 调用 getApplicationContext() 和将其作为参数传递给您的 AsyncTask.正如 EboMike 所指出的,MainActivity.this 仅在您的 AsyncTask 是内部类时才有效.

Get the Context object by calling getApplicationContext() from MainActivity and pass it as a parameter to your AsyncTask. As EboMike has pointed out, MainActivity.this would only work if your AsyncTask was an inner class.

这篇关于从 AsyncTask 中提升 Toast的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆