2017-01-06 11 views
0

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

Так что моя проблема это всякий раз, когда я нажмите на выходе в моем приложении она закрывает основной деятельность и возвращается что одна нормальная активность в всплеске активности. Я использую finish(); на кнопку выхода, которая присутствует в основном виде деятельности.

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

Я также попытался создать нового намерения с действиями Main, но его только минимизируя приложение Я хочу, чтобы закрыть это

MainActivity.class

if (id == R.id.exit) { 
      AlertDialog.Builder builder = new AlertDialog.Builder(homeActivity.this); 
      builder.setMessage("Do You Want To Exit?").setCancelable(false) 
        .setPositiveButton("Yes", new DialogInterface.OnClickListener() { 
         @Override 
         public void onClick(DialogInterface dialog, int which) { 
          finish(); 
         } 
        }).setNegativeButton("No", new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int which) { 
        dialog.cancel(); 
       } 
      }); 
      AlertDialog alert = builder.create(); 
      alert.setIcon(R.drawable.ic_error_outline_black_24dp); 
      alert.setTitle("Exit!!"); 
      alert.show(); 
     } 
+1

Возможный дубликат [Как выйти из приложения и показать главный экран?] (Http://stackoverflow.com/questions/3226495/how-to-exit-from-the-application-and-show- home-screen) –

+0

увольняйте свою активность всплеска, когда вы начинаете с нее основную деятельность. – Spartan

+0

Это происходит потому, что первая активность все еще находится в стеке – Prabs

ответ

1

При запуске MainAcitivity из SplashActivity набор флагов в намерениях, как показано ниже и вызвать finish() на SplashAcitivty

Intent intent = new Intent(context, MainActivity.class); 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(intent); 
finish(); 
+0

спасибо mate получил то, что мне нужно .... :) –

0

вы можете установить android:excludeFromRecents="true" и android:noHistory="true" у вас андроид Manifest файл для всплеска активности.

0

Попробуйте добавить флаг "Intent.FLAG_ACTIVITY_CLEAR_TOP" в то время как вы запускаете MainActivity от вашего SplashScreenActivity, как показано ниже:

intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); 
+0

. Я попытался, но не работал следующим образом. Я добавил «Intent inst = new Intent (ipInfo.this, homeActivity.class); inst.addFlags (Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); startActivity (inst); ' –

+0

после запуска активности у меня установлен' finish(); 'тогда он работает так, как я ожидал спасибо :) –

0

добавьте эти вещи во всплеск, перемещая всплеск на mainActivity

intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); 
finish(); 

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

  • Нет связанных вопросов^_^