私がここでやろうとしているのは、私がウェブサービスを呼びたいと思って、そのレスポンスに基づいて別のウェブサービスを呼び出すか、アクティビティを開始するということです。別のスレッドを使用していますが、問題は私がワーカースレッドでアクティビティを呼び出すことです。 自分自身をより明確にするために、疑似コードを入れました。スレッドからアンドロイドのアクティビティを開始する
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スレッドからのみアクティビティを開始できると考えました。スレッドの意味で、ここでバックエンドで起こっているプロセスは何ですか?これが良い練習でない場合、私の擬似コードを実装する他の代替手段はですか?
おかげ