我想在用户按下主页按钮时终止应用程序。我可以检测到主键,但是当使用下面的代码杀死应用程序时
Process.killProcess(Process.myPid());
只有特定活动被杀死而不是整个应用程序。因此,当我重新启动应用程序时,它来自之前的活动
示例流程:
FirstActivity - > SecondActivity - >第三项活动 - > Home on Third Third活动 - >重新启动来自SecondActivity的应用程序(应该来自FirstActivity)
请帮帮我 谢谢
答案 0 :(得分:0)
抱歉这是不可能的。正如android的文档说的那样。 You nedd to follow Activity Lifecycle.
此处的活动将为stack one upon another
。因此,当你通过第三项活动时,你需要完成两项活动。
否则您的活动将从最后一叠活动开始
为了更好地理解,请参阅此Link
答案 1 :(得分:0)
你需要清除顶部。试试这个- 1.当您想退出时启动任何活动 -
Intent intent = new Intent(this, end.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
2.在onCreate()
中结束活动呼叫结束它应该有用!
答案 2 :(得分:0)
实现这一点的方式取决于您希望应用程序拥有哪种流程。
您是否希望能够从SecondActivity
或ThirdActivity
恢复?如果没有,您可以在清单中的<activity>
添加一个方便的参数:
android:noHistory="true"
http://developer.android.com/guide/topics/manifest/activity-element.html#nohist
此标志表示当用户离开Activity
时,它不会保留在活动堆栈中。这与用户离开时在finish()
上调用Activity
实际上相同。
答案 3 :(得分:0)
add activity in to stack when move from one activity to another...
by calling
Activities app = new Activities();
app.addBackActivity((Activity) MYClass.this);
and remove all activty by calling
act.finishAll();
public class Activities{
public static Stack<Activity> classes = new Stack<Activity>();
public Activity getBackActivity() {
return classes.pop();
}
public void addBackActivity(Activity activity) {
classes.push(activity);
}
public void finishAll(){
for(int i=0;i<classes.size();i++){
classes.get(i).finish();
}
classes.clear();
}
}