1

我在从属线程中有一个祝酒词,它需要告诉用户建立了连接。为此,我知道我需要使用 Async 来完成 toast,但我不确定在哪里或如何实现扩展的异步。如果我理解它,我想我可以只用 onProgressUpdate() 吐司创建一个 MyAsync 吗?

@Override
public void onProgressUpdate(String... args) {

         Toast.makeText(context, args, Toast.LENGTH_SHORT).show();
}

谢谢你的时间~Aedon

4

1 回答 1

1

是的,您应该能够扩展 ASyncTask 并将模板变量更改为您需要的。Toast 类是一个静态类,因此可以从任何线程调用它而不必担心冲突。

我没有看到您上面的代码有任何问题,除非您不想经常调用新的 Toast 消息,因为它们会堆叠。因此,如果您要连续调用 .show() 函数,它将堆叠它们并继续每隔 LENGTH_SHORT 间隔显示新的 Toast 消息,直到它赶上。

至于 ASyncTask 的示例,请看:

private class MyAsync extends AsyncTask<<What to pass in to doInBackground>, <What to pass in to onProgressUpdate>, <What type onPostExecute receives>> {
     protected T (result type to onPostExecute) doInBackground(T... urls) {
         //Do big calculations in here
     }

     protected void onProgressUpdate(T... progress) {
         //Update
     }

     protected void onPostExecute(T result) {
         //Done
     }
 }
于 2010-11-29T17:08:04.520 回答