2012-04-12 15 views
4

私のアプリでhereのコードを使用しました。「キャンセル」オプションをクリックすると、ホームボタンを長押ししてアプリを選択するとアプリが最小化されますスクリーンがスプラッシュスクリーンでないか、アプリが起動する通常の方法ではない - だから私はそれが私をホームスクリーンに連れて行くと仮定している。私は主要な活動を完全に閉じることができる方法を探しています。一度にアプリ全体を終了

私は、次の方法を試してみました、それが毎回クラッシュしました:別のアクティビティにsystemexit()

  • setresult()を持っている意図を開く

    1. finish();
    2. mainactivity.class.finish();
    3. を。
  • +0

    あなたは私たちに実行されるコードを示してもらえますか?私はあなたが 'finish()'を呼び出そうとしている場所と、それを呼び出すことによって得られたエラーを意味します。 – WarrenFaith

    +0

    あなたの "finish()"はなぜ失敗しますか? –

    +0

    あなたのlogcaterrorは何ですか? –

    答えて

    10

    はrecommenedていないが、それでもあなたはこれを使用することができます。 アプリを終了する必要がある場合に備えるために、このソリューションをお勧めします。

    私によれば、最高の解決策は、以下のようにアプリ内のすべてのアクティビティを完了させることです。

    step1)mainactivityの静的変数を維持します。

    public static boolean isQuit = false; 
    

    step2)ボタンのクリックイベントで、この変数をtrueにします。

    mainactivity.isQuit = true; 
        finish(); 
    

    STEP3)そして、あなたのアプリケーションのすべての活動には、以下のようにonrestart方法を持っている...

    @Override 
         protected void onRestart() { 
         // TODO Auto-generated method stub 
         super.onRestart(); 
         if(mainactivity.isQuit) 
          finish(); 
        } 
    
    -3

    uが持つすべての実行中のアクティビティのすべてのスレッドasynctaskを殺すことができます。

    System.exit(0); 
    
    +0

    私はgpsとインターネットを使用しているので、バッテリーの大量を消費します。私は上記のコードを試したそれはまだバックグラウンドで実行されています。 –

    +0

    wifiとgpsバッテリーが絶えず排水されるので、これらの2つの設定を無効にすることをお勧めします。それらを使用していないときは... GPSをプログラムでオン/オフできます。 – user987760

    +0

    System.exit(0);あなたのために働かなかった、あなたは(this.finish();)あなたの活動を完了する必要があると思うSystem.exit(0);それはいつも私のために働く... – user987760

    関連する問題