- 浏览: 124486 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
kingbinchow:
android:tonghuaguanxin 写道请问,这个属 ...
修改EditText的光标颜色 -
tonghuaguanxin:
请问,这个属性在代码中如何设置?
修改EditText的光标颜色
看到很多关于应用退出的问题,今天在这里为大家简单总结一下,如果说的不对还望大家见谅。
方法一:System.exit(0) 和android.os.Process.killProcess(android.os.Process.myPid()),我想很多人都尝试过,当关 闭多个Activity的时候这两个方法根本不起作用,原因当然和Activity的堆栈管理有关。
方法二:restartPackage,这种方法会终止一切和这个程序包关联的,所有共享同一uid的process被kill,所有 的activity会被removed所有创建的服务会停止,还会发一个广播 Intent.ACTION_PACKAGE_RESTARTED 。众所周知这个方法已经过时,2.2就不起作用了。
ActivityManager manager = (ActivityManager)getSystemService(ACTIVITY_SERVICE);
manager.restartPackage(getPackageName());
<uses-permission android:name=”android.permission.RESTART_PACKAGES”/>
方法三:这个方法是2.2以后取代restartPackage的方法。但是google给的只是一个空壳,这个方法依然不起作用。
activityManager.killBackgroundProcesses(packageName);
<uses-permission android:name=”android.permission.KILL_BACKGROUND_PROCESSES”/>
方法四:创建一个ActivityInstance单例模式来统一管理Activity的退出。这是一个很鸡肋的方法,因为它确实有用,但又这么写又有点浪费。
具体做法就是写一个ActivityInstance单例,在每一个activity启动的时候都调用它的ActivityInstance.addActivity(this);方法,当退出应用时,调用ActivityInstance.exit();方法。
public void exit(){
for(Activity at:activityList){
at.finish();
}
System.exit(0);
}
方法五:发送广播退出。在需要结束应用时,发送一个特定的广播,每个Activity收到广播后关闭。如果不闲麻烦可以这样做,个人来讲还没有方法四好。
方法六:递归退出,在打开新的Activity时使用startActivityForResult,然后自己加标志,在onActivityResult中处理,递归关闭。
方法七:退出的时候跳转回HOME,一种假的退出方法,但可以退出,该方法只是回到HOME页而将本身应用虚假退出。
Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(startMain);
System.exit(0);
方法八: activityManager.forceStopPackage(PackageName);看到forceStop是不是感觉还挺熟悉的,我们系统设置里面关闭应用就是调用的这个方法。这个方法可以完全关闭应用程序而且只要一个包名。
不过这个方法是系统隐藏的,我们写应用的时候在ActivityManager里是找不到这个方法的。这就涉及到了调用系统隐藏API的方法。下面是通过反射机制来获取该方法。
ActivityManager sd = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
Method method= Class.forName(“android.app.ActivityManager”)
.getMethod(“forceStopPackage”, String.class);
补充:其实Android有自己的内存管理机制并不需要我们完全退出本身应用,当用户按退出键的时候用户回到HOME或其他相关界面即可。在没有特殊要求的时候虚假退出就可以。
方法一:System.exit(0) 和android.os.Process.killProcess(android.os.Process.myPid()),我想很多人都尝试过,当关 闭多个Activity的时候这两个方法根本不起作用,原因当然和Activity的堆栈管理有关。
方法二:restartPackage,这种方法会终止一切和这个程序包关联的,所有共享同一uid的process被kill,所有 的activity会被removed所有创建的服务会停止,还会发一个广播 Intent.ACTION_PACKAGE_RESTARTED 。众所周知这个方法已经过时,2.2就不起作用了。
ActivityManager manager = (ActivityManager)getSystemService(ACTIVITY_SERVICE);
manager.restartPackage(getPackageName());
<uses-permission android:name=”android.permission.RESTART_PACKAGES”/>
方法三:这个方法是2.2以后取代restartPackage的方法。但是google给的只是一个空壳,这个方法依然不起作用。
activityManager.killBackgroundProcesses(packageName);
<uses-permission android:name=”android.permission.KILL_BACKGROUND_PROCESSES”/>
方法四:创建一个ActivityInstance单例模式来统一管理Activity的退出。这是一个很鸡肋的方法,因为它确实有用,但又这么写又有点浪费。
具体做法就是写一个ActivityInstance单例,在每一个activity启动的时候都调用它的ActivityInstance.addActivity(this);方法,当退出应用时,调用ActivityInstance.exit();方法。
public void exit(){
for(Activity at:activityList){
at.finish();
}
System.exit(0);
}
方法五:发送广播退出。在需要结束应用时,发送一个特定的广播,每个Activity收到广播后关闭。如果不闲麻烦可以这样做,个人来讲还没有方法四好。
方法六:递归退出,在打开新的Activity时使用startActivityForResult,然后自己加标志,在onActivityResult中处理,递归关闭。
方法七:退出的时候跳转回HOME,一种假的退出方法,但可以退出,该方法只是回到HOME页而将本身应用虚假退出。
Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(startMain);
System.exit(0);
方法八: activityManager.forceStopPackage(PackageName);看到forceStop是不是感觉还挺熟悉的,我们系统设置里面关闭应用就是调用的这个方法。这个方法可以完全关闭应用程序而且只要一个包名。
不过这个方法是系统隐藏的,我们写应用的时候在ActivityManager里是找不到这个方法的。这就涉及到了调用系统隐藏API的方法。下面是通过反射机制来获取该方法。
ActivityManager sd = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
Method method= Class.forName(“android.app.ActivityManager”)
.getMethod(“forceStopPackage”, String.class);
补充:其实Android有自己的内存管理机制并不需要我们完全退出本身应用,当用户按退出键的时候用户回到HOME或其他相关界面即可。在没有特殊要求的时候虚假退出就可以。
发表评论
-
android studio debug 一直加载so文件
2017-06-24 16:15 568以前在debug时,一直很快就可以成功,但最近电脑卡,加上更新 ... -
心形vector drawable
2016-04-21 10:44 605<vector xmlns:android ... -
Gridview的第一个Item点击没反应,点击其他的item OK
2015-08-07 14:56 1661遇到一个前人挖下的大坑,各种没响应的呀,后来发现以下代码有问题 ... -
仿iOS 的AssistiveTouch 按键 Floating Action Button
2015-04-16 14:50 1303FloatButton fb = new FloatBu ... -
Android 常见错误处理
2015-04-03 16:03 9571.could not find "com.baid ... -
Android GirdView 最后一行显示不完整
2015-03-20 18:19 3486Android GridView 设置wrap_content ... -
import android eclipse project to android studio
2014-11-13 11:09 916Export from Eclipse 1.Update y ... -
Canvas.drawTextOnPath 2D绘图
2014-07-23 17:18 698绘制文字效果,如下图 protected void onD ... -
android SAX parse xml
2014-07-17 16:22 618<?xml version="1.0&qu ... -
自定义menu,用PopupWindow截获KeyEvent
2014-07-17 15:49 1241public boolean onKeyDown(int ke ... -
Android 自动结束本层activity,回退到上一层 的intent 设置
2014-06-27 13:08 1976Intent intent = new Intent(); ... -
Android Custom View , can not use custom tag in xml file
2014-06-27 13:04 607add this line: xmlns:custom=&qu ... -
onMeasure()--典型视图度量时间
2013-02-18 15:42 981@Override protected void onMe ... -
AsynTask
2013-02-07 16:25 709... -
修改EditText的光标颜色
2013-01-29 15:02 4173在使用EditText的XML 文件中加入一个属性: and ... -
PopupWindow 的BadTokenException
2012-11-05 15:10 1315进入Activity就弹出PopupWindow 来,结果编译 ... -
android sqlite3 数据类型
2012-08-20 09:54 7093sqlite3中的数据类型 大多数的数据库引擎(到现在据我 ... -
android 入门xml布局文件--转
2012-07-10 15:58 908LinearLayout和RelativeLayout共有属性 ... -
Syntax error, static imports are only available if source level is 1.5
2012-06-05 10:20 1584Question: 工程之前一直正常运行,今早上 突然报出 S ... -
android--JNI (转)
2012-05-29 12:14 961The JNI is designed to handle s ...
相关推荐
本文将探讨如何在Android应用中实现完全退出,以及解决引用Context未释放导致的OOM(Out of Memory)问题。 首先,理解Android应用的生命周期至关重要。在Android中,应用通常不会被完全关闭,而是进入后台状态,...
"UncaughtException不让Android应用异常退出"这个主题,就是关于如何处理程序中的未捕获异常,以防止应用突然崩溃,从而提升用户体验。在这个问题上,我们可以从以下几个方面来探讨: 1. **...
总结来说,完全退出Android应用需要理解Activity的生命周期,并结合使用如广播接收器、Intent标志、系统API等手段。开发者应该根据应用的具体需求选择合适的方法,并确保符合Android的设计原则,提供良好的用户体验...
首先,我们要明白`Application`类是Android应用程序的基类,它在应用启动时最先被创建,并在整个应用生命周期内存在。我们可以通过重写`Application`类的方法,添加一些全局的初始化或清理操作。 **1. 创建自定义...
一个Android应用是由一系列的Activity组成的,这些Activity在栈中按启动顺序组织,形成了所谓的任务(task)。默认情况下,当用户按下后退键时,系统会按照栈的逆序依次销毁Activity,直至退出应用。因此,一种简单的...
这个主题主要涉及Android应用程序的生命周期、Activity栈管理和进程管理。以下是对这一问题的详细阐述: 首先,理解Android应用程序的基本结构是至关重要的。一个Android应用通常由一个或多个Activity组成,它们在...
下面将详细阐述Android应用退出的相关知识点。 1. **Android应用生命周期**: Android应用由一系列Activity组成,每个Activity有自己的生命周期,包括onCreate(), onStart(), onResume(), onPause(), onStop() 和 ...
在Android应用开发中,确保应用的稳定性和用户体验是至关重要的。`AppManager`是一个常见的工具类,用于管理和控制应用程序的生命周期。本篇文章将详细探讨如何使用`AppManager`优雅地退出应用,以及如何处理崩溃...
总结来说,Unity3D中处理Android应用退出的方式需要考虑到平台的特定行为,以及提供良好的用户体验。使用`Application.Quit()`虽然简单,但可能不符合Android应用的常规操作,因此建议采用更加用户友好的方式,如弹...
Android 应用崩溃自动启动 给用户给好的体验 本应用还可以扩展为类似京东崩溃时弹出信息反馈框 这需要你自己实现哦 另外欢迎关注我的新浪微博@MinganCai 有问题可以@我 我会尽快给你们回复的 雷锋
一个Android应用由多个Activity组成,每个Activity有自己的生命周期,包括onCreate(), onStart(), onResume(), onPause(), onStop()和onDestroy()等方法。当用户按下设备的返回键时,Activity会按照这些生命周期方法...
标题 "Android-AndroidActivity侧滑退出库" 指的是在Android应用开发中,使用特定的库实现Activity的侧滑退出功能。这种功能常见于许多现代Android应用,它为用户提供了一种直观且易于操作的界面返回方式,类似于...
在Android开发中,为了让用户能够明确地退出应用,通常会实现一个功能,即连续点击两次返回按钮后退出应用程序。...通过合理的设计和优化,我们可以使这个功能在各种复杂的Android应用环境中都得到良好的应用。
在Android应用开发中,用户可能需要在完成一系列操作后彻底退出程序,特别是在处理完敏感信息或者需要节省系统资源的情况下。通常,一个Android应用由多个Activity组成,每个Activity代表一个独立的屏幕或功能。当...
在Android应用开发中,通常我们希望用户在按下返回键时能够退出应用程序,但为了提供更好的用户体验,Android系统并不推荐直接在用户第一次点击返回键时就退出。为了实现“再按一次返回键退出应用程序”的功能,我们...
【Android程序退出】是关于Android应用生命周期管理的重要话题。在Android系统中,应用程序并不总是按照开发者预期的方式退出,因为系统可能会为了节省资源而自动暂停或杀死应用。理解如何优雅地退出Android程序对于...
总之,实现完全退出Android应用程序通常涉及到对Activity生命周期的理解,以及可能的自定义事件监听。尽管这并不总是最佳实践,但在某些场景下是必要的。"ColseApp"项目可能提供了一个示例,展示了如何在多种Android...
在Android开发中,确保应用程序能够安全退出是至关重要的。安全退出不仅意味着关闭当前运行的活动,还要处理好程序运行过程中的资源释放、内存管理...在实际开发中,应始终遵循最佳实践,以打造高质量的Android应用。
在Android应用开发中,滑动边缘退出Activity是一种常见的交互设计,它可以提供更加直观和便捷的用户界面体验。本文将深入探讨如何在Android中实现这一功能,主要涉及Android自定义手势识别、视图层级管理和Activity...
本示例"退出Android应用程序Demo"将讲解如何实现这个功能,涉及到的关键知识点包括Activity的生命周期管理和Service的控制。 首先,我们需要理解Android的Activity生命周期。Activity是Android应用的基本组件,它...