2012-02-23 14 views
2

私のプロジェクトでは、とにかくアプリを終了する必要があります(Androidでは提案されていませんが、私の顧客はそれが必要です)。Android、アプリケーションを閉じるには:android.os.Process.killProcess(android.os.Process.myPid());

ほとんどの場合、通常の方法で(ホームボタンを押して)アプリを閉じると、ホームボタンを押したままタスクマネージャを押すと、バックエンドにアクティブなアプリのリストが表示されます。私はそれが表示されないような方法でアプリを削除する必要があります。

私の研究の後、私は方法がこのようなキルプロセスを使用していることを発見しました。

android.os.Process.killProcess(android.os.Process.myPid()); 

テストプロジェクトでこのコマンドをテストしたところ、うまくいきました。しかし、私はなぜこのプロジェクトでそれが単純なthis.finish();として機能するのか分かりません。つまり、終了メニューをクリックすると、アプリケーション全体が終了するはずですが、アクティビティを閉じるだけです。

私はこのコードを他のすべてのアクティビティが継承している一般的な(アクティビティ)クラスに入れました。

教えてください/何が問題なのですか?あなたのAndroidManifest.xmlのおかげで

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    menu.add(Menu.NONE, Menu.FIRST, Menu.NONE, "Exit"); 

    return (super.onCreateOptionsMenu(menu)); 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle item selection 
    switch (item.getItemId()) { 
     case Menu.FIRST: 
      android.os.Process.killProcess(android.os.Process.myPid()); 
      return true; 
     default: 
      return super.onOptionsItemSelected(item); 
    } 
} 

答えて

1

android:excludeFromRecents="true" 

この活動によって開始されたタスクは、最近使用したアプリケーション(「最近使用したアプリ」)のリストから 除外すべきかどうか。つまり、 このアクティビティが新しいタスクのルートアクティビティである場合、この属性 は、最近の アプリのリストにタスクを表示しないかどうかを決定します。タスクをリストから除外する必要がある場合は「true」、含まれている場合は "false"となります。デフォルト値は "false"です。

http://developer.android.com/guide/topics/manifest/activity-element.html#exclude

+0

おかげ親愛なるトライアドが、私は私の場合のためにそのないと思います。私はマニフェストファイルのメインアクティビティに入れますが、動作しません。それでも上記のコードでアプリを閉じると、最後のアクティビティに戻ります。 – Hesam

+0

ああ、最近のアプリ(HOMEボタンを押している)のリストからアプリケーションを削除する方法を尋ねていると思った。あなたのアプリですべてのアクティビティを破壊しようとしていますか? – triad

+0

実際に私の関心事は、「タスクマネージャでアプリケーションをアクティブに見せないようにする」ということです。私はこのアプリで動作していない上記のコマンドを知っていた。 – Hesam

関連する問題