我需要知道是否有任何方法可以知道何時在Activity上按下後退按鈕時將打開的活動是什麼。我想我可以看看活動堆棧,但我需要一些指示如何做到這一點。瞭解在Android中按BACK時將啓動什麼活動的方法
在此先感謝。
編輯:感謝所有的答案,但我仍然想解釋真正的問題。
我有了一堆消耗大量的電力(傳感器,GPS和wifi)的,我想保持安靜,當我沒有使用「任務」(即要做些什麼活動的應用程序其他)。
我該如何捕獲在我的應用程序中沒有任何更多內容的事件?
我需要知道是否有任何方法可以知道何時在Activity上按下後退按鈕時將打開的活動是什麼。我想我可以看看活動堆棧,但我需要一些指示如何做到這一點。瞭解在Android中按BACK時將啓動什麼活動的方法
在此先感謝。
編輯:感謝所有的答案,但我仍然想解釋真正的問題。
我有了一堆消耗大量的電力(傳感器,GPS和wifi)的,我想保持安靜,當我沒有使用「任務」(即要做些什麼活動的應用程序其他)。
我該如何捕獲在我的應用程序中沒有任何更多內容的事件?
從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
,如果你能猜出哪個活動,那麼您可以在一個條件語句
@Override
public void onBackPressed(){
Context mycontext = this;
if(mycontext instanceof className)
{
startActivity(new Intent(this, distinatinClass);
}
else if(mycontext instanceof differentClassName)
....
else
....
}
我需要一種方法能夠'預見'當我點擊後退按鈕時,我要去做什麼活動:) – JQCorreia 2011-04-15 15:36:53
see this task design for android使用instanceof方法。
各種API,變量:
taskAffinity
launchMode
allowTaskReparenting
clearTaskOnLaunch
alwaysRetainTaskState
finishOnTaskLaunch
我想你應該更好地與更多的描述您的問題細節讓我們幫助您找到最佳解決方案,而不是試圖找到一種方法來實現您選擇的解決方案,並且這看起來很糟糕,因爲它違反了Android操作系統的原理&假設。
不錯,不錯。我現在可以真正使用它自己! – CQM 2011-04-15 16:26:55
我沒有看到我想要使用這個...的情況告訴我你會用它做什麼?! – binnyb 2011-04-15 17:14:28