2014-01-21 3 views
0

У меня есть два пакета:убить вторую активность второго пакета из первого действия первого пакета в андроиде

  • com.surveydemo с SurveyDemoActivity; и
  • com.surveydemo.DroidPHP с HomeActivity.

Я сделал одну кнопку бросить в SurveyDemoActivity и после щелчка на этой кнопке она побудила «Вы действительно хотите выйти» с двумя вариантами:

  • «вернуть»
  • «бросить»

Когда я нажимаю на return, он переходит в SurveyDemoActivity, и если я нажимаю кнопку «Выход», ничего не происходит.

Если я нажму на кнопку «Выход», я хочу закончить оба действия («SurveyDemoActivity» & «HomeActivity»). Как я могу это сделать, пожалуйста?

Любая помощь приветствуется.

Заранее спасибо.

+0

Деятельность в одном приложении не зависит от пакетов –

ответ

0

Вы должны начать SurveyDemoActivity, как StartActivityForResult так, что если пользователь нажимает на quit и cofirm его можно установить соответствующий результат, который будет вызывать finish в HomeActivity также.

0

Вы можете:

1) Определение RC_SURVEY = 3 и RESULT_QUIT = 33

2) Запустить SurveyDemoActivity с помощью startActivityForResult(intent, RC_SURVEY);

3) На "бросить курить", близкий SurveyDemoActivity:

setResult(RESULT_QUIT); 
    finish(); 

4) В onActivityResult of HomeActivity проверяет результат и закрывает родительскую активность:

if(request == RC_SURVEY && result == RESULT_QUIT) 
     finish(); 
0

Вы можете использовать BroadcastReceiver, как только пользователь нажмет кнопку выхода, отправьте широковещательную передачу, чтобы убить действие.

в первой деятельности:

BroadcastReceiver receiver = new BroadcastReceiver() { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     finish(); 
    } 
}; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    IntentFilter filter = new IntentFilter(); 
    filter.addAction(MainActivity2.CUSTOM_INTENT); 
    registerReceiver(receiver, filter); 
} 

@Override 
protected void onDestroy() { 
    super.onDestroy(); 
    unregisterReceiver(receiver); 
} 

и во 2-й деятельности:

public static final String CUSTOM_INTENT = "custom.intent.action.KILL"; 

    Button button = new Button(this); 
    button.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Intent i = new Intent(); 
      i.setAction(CUSTOM_INTENT); 
      sendBroadcast(i); 
     } 
    }); 
Смежные вопросы