2

このコードを使用して、アプリケーション全体を終了していました。実際には、アプリケーションの任意のページでアプリを終了しようとしています。私はこのコードを試してみました..

誰でも私を助けてください。

    @Override
    public void onBackPressed() {
     this.finish();
    }
4

8 に答える 8

6

私の知る限り、Android は選択によってアプリケーションを終了することを好みません。Android OS 自体がそれを管理します。

ただし、回避策として次のことを検討できます。

  1. 対応するインテントによってホーム アプリケーションを起動できます。

    public void exitAppMethod(){
    
           Intent intent = new Intent(Intent.ACTION_MAIN);
           intent.addCategory(Intent.CATEGORY_HOME);
           intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
           startActivity(intent);
    }
    
    then you can call this method wherever you want. like
    
    @Override
    public void onBackPressed() {
     exitAppMethod()
    }
    
  2. アプリが最近のアプリの一覧に表示されないように、各アクティビティのマニフェストに次のコードを追加します。(ホームボタン長押し時)

        <activity
        android:name=".your_Activity"
        android:label="@string/app_name"
        android:excludeFromRecents="true"/>
    

そのため、ユーザーがを使用して終了しようとするたびexitAppMethod()に、ユーザーはホーム画面に移動し、同時にアプリケーションは最近のアプリ リストに表示されません。そのため、ユーザーは最初からアプリを起動する必要があります。

于 2013-08-21T14:02:01.857 に答える
1

新しいアプリを開始するたびにフローに追いついたりアクティビティを強制終了したりせずにアプリ全体を閉じたい場合は、次のソリューションを使用できます。

@Override
public void onBackPressed() {
    Intent intent = new Intent(getApplicationContext(), FirstActivity.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    intent.putExtra("EXIT", true);
    startActivity(intent);
}

次に、最初のアクティビティの onCreate メソッドで次のことを行います。

if (getIntent().getBooleanExtra("EXIT", false)) {
    finish();
}

もちろん、アクティビティを完全に閉じるには、すべての戻るボタンに onBackPressed コードを配置する必要があります。

于 2013-08-21T13:36:27.190 に答える
1

アプリケーションの流れを維持する必要があります。いつでも、[戻る] ボタンを押してアプリケーションを終了したい場合は、アクティビティがスタックにプッシュされていないことを確認する必要があります。

たとえば、別のアクティビティに移動するときに各アクティビティを終了できます。この方法では、デバイスの戻るボタンを処理する必要さえなく、ユーザーはアプリケーションを終了します。

于 2013-08-21T13:21:08.443 に答える
1

アプリを閉じる必要がある場合、finish();またはネストされたアクティビティからアプリを閉じる必要がある場合は、使用できますfinishAffinity();

于 2018-06-01T08:20:33.277 に答える
0

アクティビティ フローについて言及していないため、新しいアクティビティを開始するたびに、既存のアクティビティ ku finish() メソッドを強制終了することをお勧めします。

于 2014-03-15T07:35:47.497 に答える
0

この機能を実装できる方法はたくさんあります: 1 つの例を考えてみましょう:

新しいアクティビティを開始するときのアプリ内のあらゆる場所、つまり:

startactivity(intent);

次のような次のアクティビティに進む前に、現在のアクティビティを終了するだけです。

 startactivity(intent);
 this.finish();

このように、アプリ内のどこでもクリックすると、アプリ全体が閉じられます。

フラグメントについて何か考えがある場合は、FragmentActivity を使用することもできます。これも良いアプローチです。

于 2013-08-21T13:21:42.280 に答える