2010-11-20 12 views
1

私のアプリケーションには3つのアクティビティがあります。私の3番目の活動では、ホームボタンをクリックするとアンドロイドのホーム画面(アプリケーションはまだバックグラウンドで実行されていますが、私はLogステートメントを使用して気付きました)になります。私がアプリケーションを再起動すると、最初のアクティビティから開始します。どのように私は3番目の活動からそれを読み込むことができますか?誰もが私にあなたの提案を与えることができます....事前にアンドロイドのホームボタン?

おかげで....

答えて

7

を使用すると、ホームボタンをクリックした場合、活動はメソッドを実行します。onPause() - > onStopを();あなたがアプリケーションを再起動するとき
は、活動がメソッドを実行します:onRestart() - > ONSTART() - > onResume() - > ....
は、これらのメソッドを介して活性を制御します。 私はそれがあなたを助けたいと思う。

0

いいえ、最初のアクティビティからは開始しません。ホームボタンを押した後、アクティビティアイコンを押すか、ホーム(アプリケーションスイッチャー)を長押ししてアクティビティを開始すると、アクティビティの実行中にアプリケーションが続行されます。

あなたは、エミュレータの開発設定でフラグを「すぐに破壊する」、またはあなたがあまりにも少ないメモリが残っている可能性があります、またはあなたは、プロセスを自分で殺した上で切り替えている場合があります。このような場合、Androidはあなたの活動を破壊する可能性があります。次に、開始アクティビティーで再始動します。

RG

1

以下の方法を無効にします。

@Override 
public void onAttachedToWindow() 
{ 
    Log.i("TESTE", "onAttachedToWindow"); 
    this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD); 
    super.onAttachedToWindow(); 
} 

この方法では、HOMEボタンがこのアクティビティ(このアクティビティのみ)で機能しなくなります。その後、通常のボタンイベント(バックボタンなど)として再実装します。

public boolean onKeyDown(int keyCode, KeyEvent event) { 
if (keyCode == KeyEvent.KEYCODE_HOME) { 
    Log.i("TESTE", "BOTAO HOME"); 
    return true; 
} 
return super.onKeyDown(keyCode, event);  

}

関連する問題