Предположим, у меня есть Activity
A. Activity
A имеет кнопку, которая вызывает метод parse()
из класса B. parse()
имеет булевский чек. Если это так, то parse()
возвращает Object
(например, String
); если оно ложно parse()
вызывает promtError()
в классе B.Как вернуться к первоначальной активности до завершения метода?
активность A:
public class A extends Activity {
//
// activity body
//
public void onClick(View v){
String s = B.parse();
Intent i = new Intent(getApplicationContext(),
AddToCheckActivity.class);
i.putExtra("tip", s);
startActivity(i);
finish();
}
}
где promtError()
:
public static void promtError(){
context = MyApplication.getAppContext();
AlertDialog.Builder builder = new AlertDialog.Builder(MyApplication.getAppContext());
builder.setMessage("Потеряна связь с сервером. Попробуйте позже.")
.setCancelable(false)
.setPositiveButton("закрыть", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
//do things
}
});
AlertDialog alert = builder.create();
alert.show();
}
метод разбора():
public String parse(){
if(a == 1) return generate();
else promtError();
return "";
}
Как я должен изменить promtError()
или parse()
, чтобы вернуться к Activity
A на минуту, прежде чем я нажал кнопку на Activity A
? Поэтому мне нужно поведение, подобное GOTO, когда promtError() срабатывает, parse() не возвращает «» и переходит в Activity A, так как public void onClick (View v) никогда не вызывался.
Фактически цель этого кода для защиты приложения от сбоев при сбое интернет-связи. У приложения есть много мест, которые вызывают parse(). parse() отправляет/получает данные на сервер/с сервера. Таким образом, я надеюсь добавить Сафти Chack разобрать(), но не к деятельности, которая будет называть его
Почему promtError статический? – njzk2
Почему вы не можете просто ввести класс B в код ошибки или исключить исключение, а затем позволить 'Activity' A обрабатывать это соответствующим образом, разрешив A показать само сообщение? Только для уточнения, является ли B также «Деятельностью»? Потому что я не понимаю, почему вам нужно сначала вернуться к «Деятельности» A, если вы ее никогда не покидали? – Xilconic
B не является активностью. Причина, почему я не делаю диалог внутри действия A - у меня есть много действий и диалоговое сообщение, и его причина одинакова для всех действий – Yarh