2015-12-06 4 views
0

У меня есть MainActivity и ManagerActivity. MainActivity - LAUNCHER. Мой ожидается процесс, какЗакрыть приложение при вызове startActivityForResult второй раз

MainActivity (по startActivityForResult)> ManagerActivity> MainActivity (onBackPressed) + startActivityForResult> ManagerActivity> MainActivity

Однако во втором призвании startActivityForResult, приложение закрывается. Это подобно тому, как

MainActivity (по startActivityForResult)> ManagerActivity> MainActivity (onBackPressed) + startActivityForResult> ManagerActivity> близко приложение

Я понятия не имею, что это проблема в моем коде. Не могли бы вы предложить мне способ получить выше моего ожидаемого proceduce

Это мой код

//MainActivity (by startActivityForResult) >ManagerActivity 
Intent intentcontent = new Intent(getApplicationContext(), ManagerActivity.class); 
startActivityForResult(intentcontent, 1); 

//On ManagerActivity     
String content_name = "name"; 
Intent intent = new Intent(view.getContext(), MainActivity.class); 
intent.putExtra("content", content_name); 
setResult(RESULT_OK, intent); 
finish(); 
@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent dataIntent) { 
     // Check which request we're responding to 
     if (requestCode == 1) { 
      // Make sure the request was successful 
      if (resultCode == RESULT_OK) { 
       //OK received detail 
       } 
      }  
} 
@Override 
public void onBackPressed() 
{ 
    super.onBackPressed(); 
    Intent intentcontent = new Intent(getApplicationContext(), ManagerActivity.class); 
    startActivityForResult(intentcontent, 1); 

} 
+0

Возможно, я немой, но не могли бы вы объяснить дальше? где он закрывается? Можете ли вы показать код для активности Mainactivity и менеджера? –

+0

Закрыть средний выход приложения. Я показываю все вышеперечисленное – user3051460

+0

'super.onBackPressed();' call заканчивает 'MainActivity'. Кроме того, вы не должны запускать Activity в 'onBackPressed()', так как это просто запутывает для пользователя. –

ответ

0

шансы ваша деятельность разрушается onBackPressed называют его, как этот

@Override 
public void onBackPressed() { 
startActivity(new Intent(this, myActivity.class)); 
    finish(); 
    super.onBackPressed(); 

по крайней мере так я называю мой, и я никогда не получаю смешные результаты, как вы.

+0

Я хочу получить результат от onActivityResult, поэтому я хочу использовать функцию startActivityForResult. – user3051460

+0

yes замените 'startactivtiy' на' Intent intentcontent = new Intent (getApplicationContext(), ManagerActivity.class); startActivityForResult (intentcontent, 1) ' –

+0

и не завершайте активность, как я, я всегда заканчиваю свою работу, потому что оператор активности не делает и не думает о лучшей логике, это настолько запутанно. –