кнопка выхода в андроиде не работает

Я пытался закрыть приложение по нажатию кнопки. Поэтому я использую следующий код на домашней странице.

closebtn.setOnClickListener(new OnClickListener() 
        {

            @Override
            public void onClick(View v) 
            {
                // TODO Auto-generated method stub
                finish();
            }
        });

с page5 нажатием close button открывается Домашняя страница.

b5.setOnClickListener(new OnClickListener() 
        {

            @Override
            public void onClick(View v) 
            {
                // TODO Auto-generated method stub
                Intent i =new Intent(Page5.this, FirstPage.class);
                startActivity(i);
            }
        });

поэтому, когда я нажимаю кнопку закрытия на домашней странице, он снова переходит на страницу 5 вместо закрытия приложения.

Пожалуйста, помогите мне найти проблему

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


person krishna    schedule 25.06.2013    source источник
comment
см. здесь   -  person CRUSADER    schedule 25.06.2013
comment
или здесь   -  person Ali    schedule 25.06.2013


Ответы (4)


finish() не закрывает приложение. Он только закрывает текущую активность. Таким образом, после завершения действия естественное поведение возвращается к последнему действию стека действий.

Итак, теперь у вас есть несколько вариантов

  1. закончить предыдущее действие, прежде чем приступить к следующему
  2. startactivityforresult для запуска второго действия. Когда закончите, вы можете поймать onActivityResult, чтобы закончить.

Возможны и другие варианты.

person stinepike    schedule 25.06.2013

попробуй это:

 b5.setOnClickListener(new OnClickListener() 
            {

                @Override
                public void onClick(View v) 
                {
                    // TODO Auto-generated method stub
                    Intent i =new Intent(Page5.this, FirstPage.class);
                    startActivity(i);
                    Page5.this.finish();
                }
            });
person Vyacheslav    schedule 25.06.2013

Вы добавляете следующий код для выхода из приложения.

closebtn.setOnClickListener(new OnClickListener() 
{

       @Override
       public void onClick(View v) 
       {
           // TODO Auto-generated method stub

           Intent startMain = new Intent(Intent.ACTION_MAIN);
           startMain.addCategory(Intent.CATEGORY_HOME);
           startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
           startMain.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
           startActivity(startMain);
       }
});

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

person Mr.Sandy    schedule 25.06.2013

вам нужно очистить верхнюю активность. Может быть, вы можете попробовать что-то вроде этого

Предположим, в нашем приложении у нас есть ряд действий (скажем, десять), и нам нужно выйти непосредственно из этого действия. Что мы можем сделать, так это создать намерение, перейти к корневой активности и установить флаг в намерении как

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

также добавьте некоторые дополнительные, например логические значения, к намерению

intent.putExtra("EXIT", true);

Затем в корневой активности проверьте значение логического значения и в соответствии с этим вызовом finish() в onCreate() корневой активности

if (getIntent().getBooleanExtra("EXIT", false)) {
 finish();
}
person blganesh101    schedule 25.06.2013