我需要知道是否有任何方法可以知道何时在 Activity 上按下后退按钮时将打开的 Activity 是什么。我想我可以看看活动堆栈,但我需要一些关于如何做的指针。
提前致谢。
编辑:感谢所有答案,但我仍然想解释真正的问题。
我有一个应用程序,其中包含大量消耗大量电量的活动(传感器、gps 和 wifi),当我不使用该“任务”(即去做其他事情)时,我想保持安静。
我如何才能捕获在后台堆栈中没有更多应用程序的事件?
我需要知道是否有任何方法可以知道何时在 Activity 上按下后退按钮时将打开的 Activity 是什么。我想我可以看看活动堆栈,但我需要一些关于如何做的指针。
提前致谢。
编辑:感谢所有答案,但我仍然想解释真正的问题。
我有一个应用程序,其中包含大量消耗大量电量的活动(传感器、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
....
}
各种API,变量可用:
任务亲和
启动模式
allowTaskReparenting
clearTaskOnLaunch
alwaysRetainTaskState
完成任务启动
ActivityX
从to发送额外的意图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 的原则和假设,所以看起来很糟糕。