假设我正在运行活动A.我想写一个AsyncTask
,它会弹出一个关于活动A的对话框。正在考虑创建一个广播接收器,它会做到这一点,但它似乎有点倒退。
不熟悉AsyncTask
Intent topop = this.getIntent();
String str = topop.getStringExtra("key1");
if(str.equals("message"))
dialog.show();
另一件事:getIntent()
如何运作?如果我发送重复的意图?它会抓住第一个吗?
答案 0 :(得分:0)
是否可以使用异步任务弹出对话框
是的,非常有可能:)
您可以在onPreExecute
或onPostExecute
中执行此操作,因为这两种方法在UI线程中调用。
从不尝试在doInBackground方法中弹出对话框,因为此方法在非ui线程中运行
答案 1 :(得分:0)
AsyncTask被设计为一个方便(帮助类),允许您执行一些后台工作并将结果传递给UI。在Android中,您1)在收到“应用程序无响应”消息之前不能阻止主(“ui”)线程超过几秒钟; 2)您无法从主线程中操纵UI;因此asynctask背后的想法。解释了这一点后,假设我正确理解了您的问题,您可以在onPreExecute
或onPostExecute
中的AsyncTask中弹出一个对话框。你只能在doInBackground
内完成。
答案 2 :(得分:0)
当然,只需在runOnUiThread()中调用dialog.show()
。
yourActivity.runOnUiThread(new Runnable() {
@Override
public void run() {
dialog.show();
}
});
有关UI主题的更多信息:http://developer.android.com/resources/articles/painless-threading.html