触发主页按钮时终止应用程序

时间:2014-07-03 06:48:52

标签: android

我想在用户按下主页按钮时终止应用程序。我可以检测到主键,但是当使用下面的代码杀死应用程序时

Process.killProcess(Process.myPid());

只有特定活动被杀死而不是整个应用程序。因此,当我重新启动应用程序时,它来自之前的活动

示例流程:

FirstActivity - > SecondActivity - >第三项活动 - > Home on Third Third活动 - >重新启动来自SecondActivity的应用程序(应该来自FirstActivity)

请帮帮我 谢谢

4 个答案:

答案 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)

实现这一点的方式取决于您希望应用程序拥有哪种流程。

您是否希望能够从SecondActivityThirdActivity恢复?如果没有,您可以在清单中的<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();

          }

        }