web-dev-qa-db-ja.com

Androidプロセスを強制終了

ワンクリックでアプリケーション全体を強制終了する方法.. finish()が機能しない??以前のアクティビティにリダイレクトします... plsが私を導きます。

          public void onClick(View arg0) {
            // TODO Auto-generated method stub
            WallpaperManager wp = WallpaperManager
                    .getInstance(getApplicationContext());

            try {
                Display d = ((WindowManager) getSystemService(Context.WINDOW_SERVICE))
                        .getDefaultDisplay();
                int width = d.getWidth();
                int height = d.getHeight();
                wp.setBitmap(b1);
            } catch (IOException e) {
                Log.e("error", "Cannot set image as wallpaper", e);
            }

                        finish();

        }
12
Coder

スタックに複数のアクティビティがある場合、System.exit()はアプリを強制終了しません

このようにAndroid.os.Process.killProcess(Android.os.Process.myPid());を使用します。

サンプル用

public void onBackPressed() {
    Android.os.Process.killProcess(Android.os.Process.myPid());
    super.onBackPressed();
}

詳細は アプリケーションを終了すると眉をひそめていますか?どのように強制的に停止するかAndroidアプリケーションをプログラムで?

これがお役に立てば幸いです。

26
Gunaseelan

この関数を使用してアプリケーションを閉じることができます

Process.killProcess( Process.myPid() ); 
5

あなたはこれが欲しいと思います

    Intent intent = new Intent(Intent.ACTION_MAIN);
    intent.addCategory(Intent.CATEGORY_HOME);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(intent);
1
Senthil

終了()

APIレベル1で追加されました。アクティビティが完了し、閉じる必要があるときにこれを呼び出します。アクティビティの結果は、onActivityResult()を介して起動したユーザーに反映されます。

system.exit()を使用して、クリックでアプリケーションを強制終了し、アクティビティを直接閉じる必要があります。

なぜfinish()が機能しないのですか?

例として、アクティビティAがアクティビティBを呼び出し、アクティビティが終了した場合にアクティビティBでfinish()を呼び出したが、アクティビティAから呼び出され、それが前のアクティビティであるため、アクティビティA画面に戻る

あなたは何ができますか?

  1. あなたは呼び出すことができます System.exit() -アプリケーションが呼び出された場所は関係なく、アプリケーションを直接強制終了します。
  2. Process.killProcess (your process id);を使用します。

  3. Finish()を使用して現在のアクティビティを強制終了することでホームアクティビティを開始し、次に呼び出します。

    Intent intent = new Intent(Intent.ACTION_MAIN);
    intent.addCategory(Intent.CATEGORY_HOME);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(intent);
    
1
NetStarter
  • startActivityForResultを使用してアクティビティを開始します。
  • _result == RESULT_CANCELLED_の場合、別のアクティビティを開始するアクティビティのonActivityResultfinish()を記述します。
  • 最後に、終了時にfinish()を使用します。
1
user1721904