【问题标题】:How to kill an application when the user taps a button当用户点击按钮时如何杀死应用程序
【发布时间】:2011-09-09 21:13:48
【问题描述】:

我想要的基本上是在 ActionBar 中有一个注销按钮,这样当用户回到应用程序时,它将像第一次一样运行。我已经完成了这个确切的行为调用:

android.os.Process.killProcess(android.os.Process.myPid()); 

在注销按钮处理程序上,但我避免使用这种晦涩难懂的技巧。

我已尝试按照此处Killing android application on pause 的描述进行操作,但行为不是预期的。当用户回来时,应用程序已经登录。我必须确保每当用户注销时,应用程序将在下次运行时重新加载。

我也试过这个:Android - How to start the exact same activity every time the app is opened up?。该行为与暂停时完成()的行为相同。

请不要回复诸如“您为什么要这样做,这不是 Android 的工作方式,它会为您管理流程”之类的评论。我了解生命周期,如下所述:http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle。我想要的并不常见,但对于我正在使用的应用程序来说绝对必要。如果杀死进程是唯一的答案,那么不幸的是,这正是我要做的。

【问题讨论】:

    标签: android


    【解决方案1】:

    你试过调用 Activity.finish() 吗?

    【讨论】:

    • 是的。 Activity.finish() 不会“关闭”应用程序。事实上,按下后退按钮是一样的。 Android操作系统处理这个过程,这不是我想要的,我要销毁应用程序。
    • 如果你想在应用关闭前做一些事情,你可以随时在 onBackPressed 中这样做。
    【解决方案2】:

    试试这个......

    System.exit(0);
    

    【讨论】:

    • 谢谢,但 System.exit 接近 android.os.Process.killProcess(android.os.Process.myPid());在黑客方面。应用程序以一种用户可以认为它崩溃的方式关闭,这就是我要避免的。
    【解决方案3】:

    在Android中......操作系统维护一个堆栈所以当我们完成一个活动时,前一个活动在前面......所以如果你不想保留堆栈,那么我们在每个活动中都遵循以下行您的清单文件。

      **android:noHistory="true"**
    

    现在您尝试使用退出按钮退出应用程序,在退出按钮上使用以下代码:

    **activity_name.this.finish();**
    

    它会工作..

    【讨论】:

    • 感谢您的帮助,但这并不奏效。每次我的应用程序启动时,它都会连接到登录服务器并检索一些数据。我已经把你所说的放在清单中的应用程序标签下,但它是一样的:如果我点击后退按钮然后回到应用程序,从服务器下载的所有数据都会出现在主屏幕上,这不是我想要的。此数据是私有的,因此注销应该意味着没有人能够再次看到该信息,除非他们登录。
    • 您必须将上述标签放在应用程序的每个活动标签中...而不是在应用程序标签中
    • 好的,我会测试并发布结果,K-ran。但我只有一个 Activity。
    • 那行不通。我做了什么: 在 Manifest 文件中,<activity android:label="myApp" android:name=".MainActivity" android:noHistory="true"> 在 MainActivity.java 文件中,private void Logout() { Toast.makeText(this, "User logged off", Toast.LENGTH_SHORT).show(); FragmentLayout.this.finish(); } 当然,我有一个调用注销的按钮。我可以在屏幕上看到吐司。
    猜你喜欢
    • 1970-01-01
    • 2012-06-05
    • 2023-03-28
    • 1970-01-01
    • 2013-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多