2015-02-08 2 views

ответ

0

Я бы использовал BroadcastReceiver в Деятельность A и рассылка от Деятельность B (или откуда вы хотите закончить Деятельность A).

public class ActivityA extends Activity { 
    private FinishReceiver finishReceiver; 
    public static final String ACTION_FINISH = 
      "com.mypackage.ActivityA.ACTION_FINISH"; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     finishReceiver= new FinishReceiver(); 
     registerReceiver(finishReceiver, new IntentFilter(ACTION_FINISH)); 
    } 

    @Override 
    protected void onDestroy() { 
     super.onDestroy(); 

     unregisterReceiver(finishReceiver); 
    } 

    private final class FinishReceiver extends BroadcastReceiver { 
     @Override 
     public void onReceive(Context context, Intent intent) { 
      if (intent.getAction().equals(ACTION_FINISH)) 
       finish(); 
     } 
    } 
} 

Закрыть по телефону

activityB.sendBroadcast(new Intent(ActivityA.ACTION_FINISH)); 

Это в основном та же идея, что и в this example.

+0

Пятно на, спасибо! – user3745906

0

активность Замкнутое еще в активность B

Если вы имеете в виду деятельность А была приостановлена ​​и остановилась, то, что всегда происходит, когда активность B работает. Если вы имеете в виду, что действие A было уничтожено, это может произойти в любое время, когда оно переходит на задний план, и вы абсолютно не контролируете его. Вы должны написать свои действия, чтобы пользователь полностью не знал, когда они были уничтожены в фоновом режиме. Это вариант разработчика «не продолжать». Ваша программа должна работать отлично с включенным. Единственным следствием оставления его в течение всего времени должно быть немного увеличено потребление ЦП и аккумулятора из-за активности, постоянно перезаряжающей их постоянное состояние.

Смежные вопросы