从 AsyncTask 中提升 Toast [英] Raising a Toast From AsyncTask
问题描述
我正在尝试从 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屋!