我在从属线程中有一个toast,需要告诉用户建立连接。要做到这一点,我知道我需要使用Async来实现toast,但我不确定在何处或如何实现扩展异步。如果我理解它,我想我可以创建一个MyAsync与onProgressUpdate()toast?
@Override
public void onProgressUpdate(String... args) {
Toast.makeText(context, args, Toast.LENGTH_SHORT).show();
}
感谢您的时间 〜Aedon
答案 0 :(得分: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
}
}