2017-11-07 9 views
0

ActivityOneとActivityTwoという2つのアクティビティがあります。私がActivityTwoで携帯電話のホームボタンを押すと、アプリケーションが終了します。だから私は再びアプリケーションを実行する場合、私は、アプリケーションが閉じられる前に最後のアクティビティだったので、ActivityTwoに行きたい。簡単にするために、私はアプリケーションが終了する前に最後のアクティビティに戻って行きたいと思います。アプリが終了する前に最後のアクティビティに戻りたい

私はどのように起動するのかわからないので、まだコードを開始していません。私は初心者のアイドルです。私はちょうど2つの活動を作成しました。

+3

アクティビティ1からどのようにアクティビティ2を開始しますか?コードを追加してください。通常、アンドロイドからの最後の動作に戻るのはデフォルトの動作です。 – Prexx

答えて

0

私は

//step one 
public class MySuperActivity extends Activity{ 
.... 
    @Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 
     if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) { 
      // step 2 
     } 
     return super.onKeyDown(keyCode, event); 
    } 
.... 
} 
//step 3 
public class MainActivity extends MySuperActivity{ 
    @override 
    public void onCreate(Bundle b){ 
      // check for stuff as you want to from step 3 
    } 
} 
  • ステップ1を次のようにそれを行うだろう:あなたが使用している活動やActionBarActivityや、これまで何を拡張することによって、独自のActivityクラスを作成し、そのクラスには、この

  • ようになります
  • 手順2:2番目の手順では、最後に使用したアクティビティをSQLliteやSharedPreferencesなどのどこかに保存するか、それまでのファイルを保存する必要があります。

  • ステップ3:メインアクティビティ(アプリケーションが起動する場所)で、ステップ2で保存された値を検出し、onCreateActivityメソッドで直接そのアクティビティに移動する必要があります。

代替方法

することができます、もちろん、あなたがオーバーライドするので取り扱い活動に複雑なものを扱う避けるために、あなたが持っているすべての活動に次のコードを実装することにより、上のステップを交換された別の方法を持っていますアクティビティクラス。

あなたの選択は、どれくらいの労力をかけたいのか、コードを繰り返したいのかによって決まります。

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) { 
     // step 2 
    } 
    return super.onKeyDown(keyCode, event); 
} 
+0

ありがとう!私はこのコードを試してみます。返信ありがとう! –

関連する問題