То, что я пытаюсь сделать здесь, - это то, что я хочу вызвать веб-сервис, и на основании его ответа я могу вызвать другой веб-сервис или начать действие. Я уже пишу веб-сервис в отдельном потоке, но проблема в том, что я называю активность в рабочем потоке,
Чтобы сделать себя более понятным, я поставил свой псевдокод .
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)//startActivity Call
else if(download of images hasnt happened today)) THEN
UTILS.DownloadImages//Web service call
if(response==connectivityorOtherError)
Toast respective Message
GOTO (GALLERY SCREEN)//startActivity Call
else if (response==confilicted Data)
Goto (CHANGES SCREEN)//startActivity Call
endif
endif
endif
Я планировал показать индикатор выполнения и выполнить все эти события в потоке, подобном этому
progressDialog = ProgressDialog.show(this, "Loading",
"Authenticating Please wait.");
new Thread() {
public void run() {
///execute the pseudo code
startActivity(intent); //Is this a good practice
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;
}
}
};
Но меня беспокоит то, что мне нужно запустить действие в рабочем потоке здесь. Является ли это хорошей практикой? Сначала я думал, что мы можем начать действие только из потока пользовательского интерфейса. Что за процесс происходит в бэкэнде здесь (в смысле потока)? Если это не очень хорошая практика, каковы другие альтернативы для реализации моего псевдокода?
PS: Извините, что задал этот вопрос еще раз. Я задавал тот же вопрос ранее, но не смог точно передать то, что хотел, поэтому получил ответы об альтернативах началу работы в рабочем потоке (часть моего вопроса), но не сделал получить любой ответ на "это хорошая практика"
Спасибо