Java 从线程启动android活动
我在这里试图做的是,我想调用一个web服务,根据它的响应,我可能会调用另一个web服务或启动一个活动。我已经在一个单独的线程中编写web服务,但问题是我在一个工作线程中调用该活动, 为了让自己更清楚,我把我的伪代码放在了Java 从线程启动android活动,java,android,multithreading,Java,Android,Multithreading,我在这里试图做的是,我想调用一个web服务,根据它的响应,我可能会调用另一个web服务或启动一个活动。我已经在一个单独的线程中编写web服务,但问题是我在一个工作线程中调用该活动, 为了让自己更清楚,我把我的伪代码放在了 if (User ID and Password present in the shared preference) THEN Utils.checkauthorisation(API) //Web Service Call
if (User ID and Password present in the shared preference) THEN
Utils.checkauthorisation(API) //Web Service Call
if(respsonse is Paswordexpired)
erase password from DB
Goto (LOGIN SCREEN)
else if( download of images hasn't happened today) ) THEN
UTILS.DownloadImages//Web service call
if(response==connectivityorOtherError)
Toast respective Message
GOTO (GALLERY SCREEN)
else if (response==confilicted Data)
Goto (CHANGES SCREEN)
endif
endif
endif
我计划显示一个进度条,并在这样一个线程中执行所有这些事件
progressDialog = ProgressDialog.show(this, "Loading",
"Authenticating Please wait.");
new Thread() {
public void run() {
///execute the pseudo code
Message msg = Message.obtain();
msg.what = 1;
messagHandler.sendMessage(msg);
}
}.start();
private static Handler messagHandler = new Handler() {
public void handleMessage(Message message) {
super.handleMessage(message);
switch (message.what) {
case 1:
progressDialog.dismiss();
break;
default:
break;
}
}
};
但让我不安的是,我必须在工作线程中启动活动这是一个好做法吗?我最初认为我们只能从UI线程开始一个活动。后端发生了什么(线程意义上的)过程?如果这不是一个好的实践,那么实现伪代码的其他替代方案是什么
谢谢启动意图,并向处理程序发送一条消息,该消息不在工作线程上。处理程序在UI线程上运行。否则,您将无法更新处理程序中的UI元素