0

戻るボタンが押されたときに開かれるアクティビティがいつアクティビティであるかを知る方法があるかどうかを知る必要があります。アクティビティスタックを見ることができると思いますが、それを行う方法についてのポインタが必要です。

前もって感謝します。

編集:すべての回答に感謝しますが、実際の問題を説明したいと思います。

多くの電力 (センサー、GPS、Wi-Fi) を消費するアクティビティがたくさんあるアプリがありますが、その「タスク」を使用していないとき (つまり、何か他のことをするとき) は静かにしておきたいと考えています。

バックスタックにアプリケーションが何もないというイベントをトラップするにはどうすればよいですか?

4

4 に答える 4

1

android のこのタスク設計を参照してください

これも役立つはずです。

さまざまな API、変数が利用可能です:

taskAffinity

起動モード

allowTaskReparenting

clearTaskOnLaunch

alwaysRetainTaskState

finishOnTaskLaunch

于 2011-04-15T15:45:17.793 に答える
1

どのアクティビティかを推測できる場合は、条件ステートメントで instanceof メソッドを使用できます

@Override
public void onBackPressed(){
Context mycontext = this;
if(mycontext instanceof className)
{ 
   startActivity(new Intent(this, distinatinClass);
}
else if(mycontext instanceof differentClassName)
....
else
....
}
于 2011-04-15T15:34:34.990 に答える
1

インテント エクストラを からActivityXに送信しActivityYます。エクストラは、アクティビティを識別する定数値への参照である可能性があります。

ActivityX:

startActivity(new Intent(context, ActivityY.class).putExtra("fromActivity", Const.EXTRA_FROM_ACTIVITY_X));

ActivityYB:

private int fromActivity;
public void onCreate(Bundle savedInstanceState) {
    ...
        fromActivity = getIntent().getExtras().getInt("fromActivity");
    ...
}
public void onBackPressed() {
    switch(fromActivity) {
        case Const.EXTRA_FROM_ACTIVITY_X:
            //we are going back to ActivityX
            break;
    }
}

次のような一意の変数Constを保持するクラスはどこですかstatic final intEXTRA_FROM_ACTIVITY_X

于 2011-04-15T15:47:44.520 に答える