2016-01-12 1 views
0

У меня есть 2 мероприятия (A и B) в моем приложении. В действии B у меня есть настраиваемая панель инструментов. Когда пользователь нажимает на панель инструментов, он возвращается к действию A. Я хочу, чтобы пользователь выходил из приложения каждый раз, когда нажимает кнопку «Назад» в действии A. Моя проблема - каждый раз, когда пользователь нажимает кнопку «Назад» на активность A, он будет считать, сколько раз пользователь вошел активность B, а затем выйти из А.Как выйти из приложения непосредственно при нажатии кнопки?

Я использую этот код:

toolbar.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       Intent goBack=new Intent(getApplicationContext(),seephotoActivity.class); 
       goBack.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | 
         Intent.FLAG_ACTIVITY_CLEAR_TASK | 
         Intent.FLAG_ACTIVITY_NEW_TASK); 
       startActivity(goBack); 
       finish(); 

      } 
     }); 

Я также попытался добавить android:noHistory="true" внутри моей AndroidManifest.xml, но он по-прежнему рассчитывает , Может кто-то указать на мою ошибку и ОБЪЯСНИТЬ?

+0

И что, если вы просто назовете финиш(); без создания goBack Intent()? Он должен просто вернуться к «предыдущему» A. – Hemix

+0

@Hemix все еще считается –

+0

О, хорошо. Так что, возможно, я неправильно понял ваш вопрос, извините – Hemix

ответ

0

См. Приведенный ниже код.

активность

// It will navigate to the B Activty. Don't call finish() here. 
startActivity(new Intent(ActivityA.this,ActivityB.class)); 

// Override the on back press method. 
@Override 
    public void onBackPressed() { 
    // TODO Auto-generated method stub 
    // Process of Counting the no.of views/ counts goes here 
     finish(); 
     super.onBackPressed(); 
    } 

активность Б

отделка();

вызов метода finish() при нажатии на Назад на панели инструментов. Это приведет вас к действию A. Не начинайте новую деятельность.

Затем, когда вы снова вернетесь в ActivityA, он выйдет из приложения.

Попробуйте это, надеюсь, это вам поможет.

0

если вы хотите выйти приложение попробовать это в деятельности по

@Override 
    public void onBackPressed() 
    { 
     finish(); 
    } 
+0

Я сделал это, и он не сделал, Спасибо, хотя –

0

Я нашел решение моей проблемы. Таким образом, проблема заключается в активности складывает так, что я сделал в деятельности B, я переопределить метод backpress как этот

@Override 
    public void onBackPressed() { 

     Intent goback; 
     goback = new Intent(B_activity.this, A_Activity.class); 
     goback.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     goback.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); 

     startActivity(goback); 
    } 

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

затем внутри активности а, я переопределить метод backpress так:

@Override 
    public void onBackPressed() 
    { 
     finish(); 
    } 

надеюсь, что это поможет тем, кто имеет такую ​​же проблему, как и я.