我正在运行后台线程。在后台线程成功执行后,我想在UI上向用户显示一些警告消息。
答案 0 :(得分:2)
如果您使用AsynTask
,那么您可以在onPostExecute()
中展示它。
http://www.mysamplecode.com/2011/09/android-asynctask-httpclient-with.html
AlertDialog alertDialog = new AlertDialog.Builder(
AlertDialogActivity.this).create();
// Setting Dialog Title
alertDialog.setTitle("Alert Dialog");
// Setting Dialog Message
alertDialog.setMessage("Welcome to AndroidHive.info");
// Setting OK Button
alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// Write your code here to execute after dialog closed
Toast.makeText(getApplicationContext(), "You clicked on OK", Toast.LENGTH_SHORT).show();
}
});
// Showing Alert Message
alertDialog.show();
有关提醒的更多帮助,请参阅http://www.androidhive.info/2011/09/how-to-show-alert-dialog-in-android/
答案 1 :(得分:0)
如果您使用AsyncTask,那么您可以在onPostExecute()
中编写用于显示消息的代码(可能是Toast)。
答案 2 :(得分:0)
将后台线程连接到UI并非不可能。借助处理程序,您可以发送消息。通过检查消息,您可以显示警报消息。我认为这段代码可以帮助您。
Thread animator = new Thread() {
public void run() {
int i = 0;
try {
sleep(4000);
while (i < 4) {
sleep(50);
handler.sendMessage(handler.obtainMessage(i));
i++;
}
} catch (Exception e) {
}
}
};
animator.start();
handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if (msg.what == 0) {
animatedimage.setImageResource(R.drawable.sub1);
} else if (msg.what == 1) {
animatedimage.setImageResource(R.drawable.sub2);
} else if (msg.what == 2) {
animatedimage.setImageResource(R.drawable.sub3);
} else if (msg.what == 3) {
animatedimage.setImageResource(R.drawable.sub4);
}
}
};
如果你使用的是Assync,你可以在
中进行onPostExecute()
答案 3 :(得分:0)
启动异步线程。异步线程为您提供了三种方法:OnPreExecute(),doInBackground()和onPostExecute()。
在UI线程上调用第一个和最后一个方法,所以一旦doInBackground中的操作