Предположим, есть три действия, порядок отображения a-> b-> c. Теперь я хотел бы возобновить Activity a сразу после Activity c, чтобы завершить некоторые операции. Возобновите Activity a Activity c напрямую, но создайте новый экземпляр Activity a.
Activity
BroadcastReceiver
onResume()
finish()
BroadcastReceiver receiveFinish = null; @Override protected void onResume() { super.onResume(); if(receiverFinish!=null){ unregisterReceiver(receiverFinish); } receiverFinish=new BroadcastReceiver() {
BroadcastReceiver receiveFinish = null;
@Override protected void onResume() { super.onResume(); if(receiverFinish!=null){ unregisterReceiver(receiverFinish); } receiverFinish=new BroadcastReceiver() {
@Override public void onReceive(Context context, Intent intent) { if(intent.getAction().equals("finish.activity")){ MyActivity.this.finish(); } } }; registerReceiver(receiverFinish, new IntentFilter("finish.activity")); }
// Завершить действие b Intent intent = new Intent ("finish.activity"); sendBroadcast (намерение); // закончить c занятие отделка ();
// Завершить действие b
Intent intent = new Intent ("finish.activity"); sendBroadcast (намерение);
// закончить c занятие
отделка ();
как сказал @Matthias, вы хотите возобновить или перезапустить занятие а? если вы хотите перезапустить его, то включите FLAG_ACTIVITY_CLEAR_TASK в ваше намерение, которое делает это: "Если установлено в намерении, переданном Context.startActivity (), этот флаг вызовет любую существующую задачу, которая будет связана с действие, которое необходимо очистить перед началом действия ".
FLAG_ACTIVITY_CLEAR_TASK
или вы могли бы просто позвонить finish(); в Деятельности А onPause
finish();
onPause
если вы хотите возобновить его, просто позвоните startActivity(new Intent(Parent.this, ActivityA.class)); или каков ваш код
startActivity(new Intent(Parent.this, ActivityA.class));
дополнительная информация: Действия , Намерение , Разработка действий и заданий