簡體   English   中英

一種了解在Android中按BACK時將啟動哪些活動的方法

[英]A way of knowing what activity will be launched when BACK is pressed in Android

我需要知道是否有什么方法可以知道何時在活動上按下后退按鈕時將打開的活動。 我想我可以看一下活動堆棧,但是我需要一些如何做的指針。

提前致謝。

編輯:感謝所有的答案,但我仍然想解釋真正的問題。

我有一個應用程序,其中有很多活動會消耗大量電能(傳感器,gps和wifi),當我不使用“任務”(即要做其他事情)時,我想保持安靜。

我如何捕獲在后堆棧中沒有我的應用程序的事件?

如果您可以猜測哪個活動,則可以在條件語句中使用instanceof方法

@Override
public void onBackPressed(){
Context mycontext = this;
if(mycontext instanceof className)
{ 
   startActivity(new Intent(this, distinatinClass);
}
else if(mycontext instanceof differentClassName)
....
else
....
}

請參閱適用於android的任務設計

這也應該有所幫助

各種API,變量可用:

taskAffinity

launchMode

allowTaskReparenting

clearTaskOnLaunch

alwaysRetainTaskState

finishOnTaskLaunch

將額外的意圖從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 int變量,例如EXTRA_FROM_ACTIVITY_X

我認為您應該用更多細節更好地描述您的問題,以便讓我們幫助您找到最佳解決方案,而不是試圖找到一種方法來實施您選擇的解決方案,因為它違反了Android OS的原理和假設,因此看起來很糟糕。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM