在2.2以前,也就是API-8以前,用这个方法关闭程序:
ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
manager.restartPackage(getPackageName());
需要声明权限
<uses-permission android:name="android.permission.RESTART_PACKAGES"/>
这种方法会终止一切和这个程序包关联的,所有共享同一uid的process被kill,所有的activity会被removed
所有创建的服务会停止,还会发一个广播 Intent.ACTION_PACKAGE_RESTARTED 导致所有注册alarms 被stopped, notifications 被removed。
在2.2以后,我们就要用新的方法:
ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
manager.killBackgroundProcesses(this.getPackageName());
需要声明权限
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES"/>
这个和上面的效果一样的。
一个完整的关闭方法:
/**
* 完全退出程序,需要增加权限! <uses-permission
* android:name="android.permission.RESTART_PACKAGES"/> <uses-permission
* android:name="android.permission.KILL_BACKGROUND_PROCESSES"/>
*/
protected void exitProgram() {
finish();
ActivityManager activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
int sdk = Build.VERSION.SDK_INT;
if (sdk < 8) {
activityManager.restartPackage(getPackageName());
} else {
activityManager.killBackgroundProcesses(getPackageName());
}
System.exit(0);
}
分享到:
相关推荐
在Android开发中,控制应用程序的生命周期是至关重要的,特别是在需要优雅地关闭应用或者管理后台进程时。本文将深入探讨在不同Android版本下关闭应用程序的方法、权限需求以及最佳实践。 ### 关闭应用程序的方法 ...
在Android系统中,完全退出一个程序是指结束应用的所有活动并释放其占用的系统资源,以便用户可以快速重新启动或切换到其他应用。这通常涉及到理解Android应用生命周期、使用Activity管理和处理Intent等方面的知识。...
// 关闭当前Activity finish(); ``` 此外,如果需要关闭之前启动的独立Activity,可以使用`finishActivity()`。 ### 示例:ch1201IntentDemo 这个示例展示了如何使用Intent拨打电话和启动新的Activity。为了拨打...
### Android关闭软键盘知识点详解 在Android开发过程中,软键盘(Soft Keyboard)的管理是非常重要的一个环节。合理的软键盘管理不仅能够提升用户体验,还能避免一些布局显示上的问题。本篇文章将详细阐述如何在...
在Android操作系统中,点击图标关闭屏幕这一功能涉及到的是应用程序与系统交互、用户界面设计以及电源管理等多个方面。这里我们将深入探讨实现这一功能所涉及的技术点和步骤。 首先,要理解Android系统的应用程序...
而在onFinish方法中,我们调用了Activity的finish方法来关闭当前界面。 为了实现用户点击取消倒计时并关闭的功能,我们需要在界面上添加一个点击事件监听器。通常,我们会在布局XML文件中为根视图设置点击事件,...
在这个方法中,你可以使用finish()函数逐个关闭当前Activity以及栈中的所有其他Activity。例如: ```java @Override public void onBackPressed() { // 关闭当前Activity finish(); // 如果还有其他Activity在栈...
本文将深入探讨Android输入法的打开和关闭机制,以及如何通过编程方式实现这一功能。 首先,理解Android系统的输入法管理机制至关重要。Android系统使用InputMethodManager来管理输入法的状态,包括显示和隐藏。...
- **持久化数据**: 如果需要在应用关闭后继续倒计时,可以考虑使用SharedPreferences或数据库存储当前状态。 - **异常处理**: 添加适当的错误处理代码,如检查时间参数的有效性,避免空指针异常等。 5. **用户...
在Android应用开发中,完全退出程序意味着结束所有与应用程序相关的活动(Activity)并释放系统资源。用户通常期望点击“退出”按钮后,整个应用程序能够完全关闭,而不是仅仅停留在后台运行。下面我们将详细讨论...
- 延时任务的执行逻辑包括检查当前是否仍有ANR状态,如果应用已恢复响应,就关闭对话框;否则,对话框保持打开状态,等待用户手动处理。 此外,开发者还可以通过设置系统属性或者自定义BroadcastReceiver来改变这个...
最终用户不再需要担心哪些应用程序是活动的,也不必在运行新程序前先关闭原有的一些程序。Android针对低能耗、低内存的设备进行了优化,这种根本性的优化是之前的平台从未尝试过的。 高质量的图形和声音。将类似...
在Android开发中,创建一个简单的闹钟程序是一个常见的任务,涉及到Android系统服务、BroadcastReceiver以及AlarmManager等核心组件。下面将详细解释如何实现一个类似上述的`ClockDemo`程序。 首先,我们需要创建一...
【Android水平尺程序】是一个专为Android智能手机设计的应用程序,它利用了设备内置的方向传感器来模拟现实世界的水平尺功能。这个程序的核心在于如何准确地获取并处理传感器数据,以提供可靠的测量结果。以下是对该...
在Android平台上,USB测试程序是用于验证设备与主机之间USB通信功能的重要工具。"android usb测试程序"通常包括一系列的API调用、示例代码和测试用例,以确保开发者能够正确地集成和调试Android设备的USB接口。下面...
例如,当用户点击确定按钮,可以调用`finish()`方法关闭当前Activity。 示例代码如下: ```java // 创建Builder对象 AlertDialog.Builder builder = new AlertDialog.Builder(context); // 设置图标 builder....
这种情况下,通常只会关闭当前Activity,而其他Activity依然保留在后台,导致应用并未真正退出。 为了解决这一问题,一种常见的做法是利用单例模式创建一个全局的`ExitApplication`类来管理所有的Activity。具体来...
在Android开发中,获取用户当前所在的城市位置是常见的需求,这涉及到GPS、网络定位等多种定位方式。本示例"Android定位当前所在城市"将详细讲解如何实现这一功能。 首先,Android定位服务主要依赖于...
在Android平台上开发应用程序时,尤其是涉及到硬件功能如手电筒的使用,开发者需要考虑设备的兼容性问题。针对"Android手电筒程序兼容Android6.0及以下手机"的主题,这里我们将深入探讨如何构建一个能在较低版本...
在 Android 应用程序开发中,有时我们需要对应用程序的关闭进行自定义处理,比如在退出前保存用户数据、清理资源或执行其他必要操作。"Shutdown" 是一个专为此目的设计的 Android 库,它提供了一个交互式的界面,...