Как закрыть приложение Android? - PullRequest
156 голосов
/ 19 января 2010

Я хочу закрыть свое приложение, чтобы оно больше не работало в фоновом режиме.

Как это сделать?Это хорошая практика на платформе Android?

Если я полагаюсь на кнопку «назад», приложение закрывается, но остается в фоновом режиме.Есть даже приложение под названием «TaskKiller», просто чтобы убить эти приложения в фоновом режиме.

Ответы [ 21 ]

2 голосов
/ 29 июня 2011

Поставьте оператор finish();, как показано ниже:

myIntent.putExtra("key1", editText2.getText().toString());

finish();

LoginActivity.this.startActivity(myIntent);

В каждом упражнении.

2 голосов
/ 11 декабря 2014

Скопируйте приведенный ниже код и вставьте файл AndroidManifest.xml в поле «Первый тег активности».

<activity                        
            android:name="com.SplashActivity"
            android:clearTaskOnLaunch="true" 
            android:launchMode="singleTask"
            android:excludeFromRecents="true">              
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER"
                />
            </intent-filter>
        </activity>     

Также добавьте этот код ниже под тегом активности в файле AndroidManifest.xml

 android:finishOnTaskLaunch="true"
2 голосов
/ 08 января 2013
@Override
    protected void onPause() {

        super.onPause();

        System.exit(0);

    }
1 голос
/ 09 сентября 2016
public class CloseAppActivity extends AppCompatActivity
{
    public static final void closeApp(Activity activity)
    {
        Intent intent = new Intent(activity, CloseAppActivity.class);
        intent.addCategory(Intent.CATEGORY_HOME);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK |
                IntentCompat.FLAG_ACTIVITY_CLEAR_TASK);
        activity.startActivity(intent);
    }

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        finish();
    }
}

и в декларации:

<activity
     android:name=".presenter.activity.CloseAppActivity"
     android:noHistory="true"
     android:clearTaskOnLaunch="true"/>

Тогда вы можете позвонить CloseAppActivity.closeApp(fromActivity) и приложение будет закрыто.

1 голос
/ 07 марта 2017

Просто напишите следующий код в onBackPressed:

@Override
public void onBackPressed() {
    // super.onBackPressed();

    //Creating an alert dialog to logout
    AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
    alertDialogBuilder.setMessage("Do you want to Exit?");
    alertDialogBuilder.setPositiveButton("Yes",
            new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface arg0, int arg1) {
                    Intent intent = new Intent(Intent.ACTION_MAIN);
                    intent.addCategory(Intent.CATEGORY_HOME);
                    startActivity(intent);
                }
            });

    alertDialogBuilder.setNegativeButton("No",
            new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface arg0, int arg1) {

                }
            });

    //Showing the alert dialog
    AlertDialog alertDialog = alertDialogBuilder.create();
    alertDialog.show();
}
1 голос
/ 08 августа 2012

Не возможно с 2.3. Я ищу много и перепробовал много приложений. Лучшее решение - установить оба (go taskmanager) и (быстрая перезагрузка). Когда они используются вместе, это сработает и освободит память. Другим вариантом является обновление до Android Ice Cream Sandwich 4.0.4, который позволяет контролировать (закрывать) приложения.

1 голос
/ 31 октября 2015

Использование finishAffinity() может быть хорошим вариантом, если вы хотите закрыть все действия приложения. Согласно Android Docs-

Finish this activity as well as all activities immediately below it in the current task that have the same affinity.
1 голос
/ 06 октября 2015

Я хотел вернуться на домашний экран моего устройства Android, так что я просто использовал:

moveTaskToBack(true);
0 голосов
/ 29 октября 2017

Лучший и кратчайший способ использования таблицы System.exit.

System.exit(0);

ВМ останавливает дальнейшее выполнение и программа завершает работу.

0 голосов
/ 07 января 2016

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

public boolean onOptionsItemSelected(MenuItem item) {

        int id = item.getItemId();]
        if (id == R.id.Exit) {
            this.finishAffinity();
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...