Android 服务器关闭时更新时菜单被阻止
我想使用菜单向处理程序发送消息。处理程序启动了一个从服务器更新的线程 然而,当我测试我的应用程序时,我关闭了服务器并按下了菜单。android应用程序在菜单中被阻止,这不应该发生,因为菜单只是发送消息。因此,我的UI被阻止 这是密码Android 服务器关闭时更新时菜单被阻止,android,menu,download,Android,Menu,Download,我想使用菜单向处理程序发送消息。处理程序启动了一个从服务器更新的线程 然而,当我测试我的应用程序时,我关闭了服务器并按下了菜单。android应用程序在菜单中被阻止,这不应该发生,因为菜单只是发送消息。因此,我的UI被阻止 这是密码 final Handler messageHandler = new Handler() { public void handleMessage(Message msg) { switch (msg.arg2) { case
final Handler messageHandler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.arg2) {
case 0:
int total = msg.arg1;
progressDialog.setProgress(total);
if (total >= progressDialog.getMax()) {
// 取消Dialog并且置0
dismissDialog(PROGRESS_DIALOG);
progressDialog.setProgress(0);
Toast.makeText(CardProcessView.this, "下载完成",
Toast.LENGTH_SHORT).show();
initData();
}
break;
case 1:
updatabase();
break;
}
}
};
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case 0:
Message message = new Message();
message.arg2 = 1;
messageHandler.sendMessage(message);
break;
default:
Log.d("update", "未更新");
}
return true;
}
protected void updatabase() {
new Thread(updateRunable ).run();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add("更新操作向导");
return true;
}
我找不到我的答案。谢谢大家。您需要更改:
new Thread(updateRunable ).run();
致:
thread.run()
只需调用线程的run方法,不要在新线程中启动该方法,您需要调用thread.start()
来创建一个线程,并在此新线程中调用run
方法。新线程(updateRunable).run()代码>改成 <代码>新线程(updateRunable).start()代码>谢谢!它起作用了。我应该花些时间复习一些java知识。
new Thread(updateRunable ).start();