Intereting Posts
Не удается разрешить метод show (android.support.v4.app.FragmentManager, java.lang.String) Android Studios RuntimeException: Неожиданное исключение в потоке записи dex К сожалению, это видео невозможно воспроизвести – потоковое mp4 для Android Почему два разных приложения, использующих aviary sdk, не установлены на одном устройстве? Android – получить видимую область просмотра? Могут ли Honeycomb Loaders решать проблемы с обновлением AsyncTask + UI? Рендеринг-текстура и синхронизация Управление ярлыками на клавиатуре Android Studio Android: данные, передаваемые по радио и Wi-Fi Применение FM-радио в разработке android Android AlarmManager.setExactAndAllowWhileIdle () и WakefulBroadcastReceiver Не работает на некоторых новых изготовленных и недорогих устройствах Есть ли способ проверить, укорочен ли текст TextView Использование метода -canvas.drawBitmap (bitmap, src, dst, paint) Скрыть указатель мыши на Android Libgdx использует ScreenUtils асинхронно и не останавливает игровой цикл

Как закрыть все действия моего приложения?

У меня есть приложение с несколькими действиями, например:

Мероприятие 1 -> Мероприятие 2 -> Мероприятие 3 -> Мероприятие 4

И я хотел бы закрыть все действия из любой деятельности и вернуться на домашний телефон.

Solutions Collecting From Web of "Как закрыть все действия моего приложения?"

Вы можете добиться этого, используя BroadcastReceivers :

  • Создайте BaseActivity следующим образом:

 public class BaseActivity extends Activity { private KillReceiver mKillReceiver; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mKillReceiver = new KillReceiver(); registerReceiver(mKillReceiver, IntentFilter.create("kill", "spartan!!!")); } @Override protected void onDestroy() { super.onDestroy(); unregisterReceiver(mKillReceiver); } private final class KillReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { finish(); } } } 

  • Сделайте свою деятельность расширением BaseActivity .
  • Всякий раз, когда вы хотите очистить стек:

 Intent intent = new Intent("kill"); intent.setType("spartan!!!"); sendBroadcast(intent); 

Вы можете очистить все предыдущие действия, используя следующие флаги:

 intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK); 

Надеюсь, это поможет!

Откройте AndroidManifest.xml и найдите действие, к которому вы хотите вернуться, и добавьте следующий атрибут

 android:launchMode="singleTask" 

Например, класс HomeActivity может иметь это в манифесте android

 <activity android:name=".HomeActivity" android:launchMode="singleTask"/> 

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

 startActivity(new Intent(this, HomeActivity.class)); 

Если вы, как правило, передаете дополнения в намерения, нет необходимости делать это, так как оно вернется в любом состоянии, которое было раньше, и даже сопровождается анимацией, например, нажатием кнопки «Назад».

И я хотел бы закрыть все виды деятельности от любой деятельности

Это Android-враждебно настроено на Android . Пожалуйста, не делайте этого.

И вернуться на домашний телефон

Я без понятия что это значит.

Если пользователь нажимает HOME, ваши действия могут и должны оставаться в ОЗУ на некоторое время, если пользователь вернется в ваше приложение.

Если под «домашним телефоном» вы подразумеваете, что одним из ваших действий является «домашний» приложение, и вы хотите вернуться к этому действию, когда пользователь нажимает кнопку какого-либо пункта или пункта меню, вызовите функцию startActivity () с намерением:

  • Определяет действие, которое вы хотите вернуть
  • FLAG_ACTIVITY_CLEAR_TOP|FLAG_ACTIVITY_SINGLE_TOP в флагах, чтобы указать, что вы хотите перенести эту деятельность вперед и избавиться от других действий, которые ранее был запущен пользователь