- 浏览: 75869 次
- 性别:
- 来自: 西安
文章分类
- 全部博客 (101)
- Android (45)
- java中多线程的实现 (1)
- Runnable (2)
- Thread (1)
- TCP网络编程 (1)
- PHP (1)
- java (4)
- JDBC (1)
- oauth登录 (1)
- 中文乱码 (1)
- Ajax (1)
- web (2)
- Mysql (2)
- HTML5 (0)
- HTML5 (1)
- entity not found (1)
- JQuery (2)
- 使用jsp和Servlet实现一个验证码 (1)
- 验证码 (1)
- 异常 (1)
- webService (2)
- not insert异常 (1)
- JAVAmail (1)
- 选中分享 (1)
- 控件 (1)
- 方法 (1)
- listView (1)
- android控件 (1)
- jqueryMobile (1)
- servlet开发中文乱码解决方案 (1)
- servlet开发中文乱码解决方案 (1)
- web文本框初始提示 (1)
- web文本框初始提示 (0)
- xml (1)
- java中的加密技术 (1)
- 互联网 (1)
- mysql数据库 (1)
- java单例模式 (1)
- gson转json (1)
最新评论
1. 添加权限
<uses-permission android:name="android.permission.RESTART_PACKAGES" />
2. 导入AppManager工具类
AppManager类是一个自定义的工具类,作用是将应用程序所有启动的Activity都添加到堆栈,最终退出应用程序时全部释放掉Activity。
完整的AppManager类代码:
package net.oschina.app;
import java.util.Stack;
import android.app.Activity;
import android.app.ActivityManager;
import android.content.Context;
/**
* 应用程序Activity管理类
* @author liux
*/
public class AppManager {
private static Stack<Activity> activityStack;
private static AppManager instance;
private AppManager(){}
/**
* 单一实例
*/
public static AppManager getAppManager(){
if(instance==null){
instance=new AppManager();
}
return instance;
}
/**
* 添加Activity到堆栈
*/
public void addActivity(Activity activity){
if(activityStack==null){
activityStack=new Stack<Activity>();
}
activityStack.add(activity);
}
/**
* 获取当前Activity(堆栈中最后一个压入的)
*/
public Activity currentActivity(){
Activity activity=activityStack.lastElement();
return activity;
}
/**
* 结束当前Activity(堆栈中最后一个压入的)
*/
public void finishActivity(){
Activity activity=activityStack.lastElement();
if(activity!=null){
activity.finish();
activity=null;
}
}
/**
* 结束指定的Activity
*/
public void finishActivity(Activity activity){
if(activity!=null){
activityStack.remove(activity);
activity.finish();
activity=null;
}
}
/**
* 结束指定类名的Activity
*/
public void finishActivity(Class<?> cls){
for (Activity activity : activityStack) {
if(activity.getClass().equals(cls) ){
finishActivity(activity);
}
}
}
/**
* 结束所有Activity
*/
public void finishAllActivity(){
for (int i = 0, size = activityStack.size(); i < size; i++){
if (null != activityStack.get(i)){
activityStack.get(i).finish();
}
}
activityStack.clear();
}
/**
* 退出应用程序
*/
public void AppExit(Context context) {
try {
finishAllActivity();
ActivityManager activityMgr= (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
activityMgr.restartPackage(context.getPackageName());
System.exit(0);
} catch (Exception e) { }
}
}
3. 使用AppManager工具类
Activity启动时,在的onCreate方法里面,将该Activity实例添加到AppManager的堆栈
AppManager.getAppManager().addActivity(this);
需要退出程序时,调用
AppManager.getAppManager().AppExit(this);
发表评论
-
Android自动化测试--Espresso框架使用
2016-11-01 10:02 759转载: Android自动化测试--Espresso框架 ... -
浅谈android中仅仅使用一个TextView实现高仿京东,淘宝各种倒计时
2016-11-01 09:54 1090转载:http://blog.csdn.net/u0130 ... -
利用apktool等工具发编译android apk
2016-10-25 09:15 748这个是我的csdn中的一篇关于android app反编译的文 ... -
Error:Execution failed for task ':app:mergeDebugResources'. > Some file crunchin
2016-10-08 10:30 1036向studio中导入微信支付Demo的时候报错了,具体如图: ... -
android studio实用快捷键收集
2016-09-30 17:51 492本人用android studio刚开始,做一下笔记,只适用于 ... -
android中事件分发机制
2016-09-22 11:52 587转载自:http://www.cnblogs.com/linj ... -
一个对sharedpreferences 数据进行加密的开源库
2016-09-18 14:30 655http://www.cnblogs.com/zhaoyanj ... -
LinerLayout滑动后停在顶部
2016-09-18 12:08 685转载自:http://blog.csdn.net/ff2008 ... -
android studio入门知识
2016-09-06 18:11 713http://blog.csdn.net/jdsjlzx/ar ... -
android图片加载OOM解决方案
2016-08-30 15:17 489转载自:http://www.apkbus.com/blog- ... -
android oom连带问题,以及tag错位问题结局方案
2016-08-30 13:48 676http://www.apkbus.com/blog-8430 ... -
android新手指导
2016-08-30 11:59 403http://www.apkbus.com/forum.php ... -
android app自动化测试
2016-07-12 15:51 520android sdk的lib目录下有个monkeyrunne ... -
利用BadgeView实现数字提醒效果
2016-07-06 16:38 975BadgeView是一个第三方开源库, github地址:ht ... -
android端图片缓存实现,特别适用于listview来回滚动
2016-07-02 10:40 698转载自: http://www.open-open.com/l ... -
android文件存储文本
2016-05-17 17:26 504/** * 写入文本 */ private void ... -
android listView的BaseAdapter的抽取
2016-05-12 11:52 657/** * BaseAdapter的抽取 * @autho ... -
android全局异常捕获并发送异常到邮箱
2016-05-12 11:41 1119public class AppException exten ... -
android第三方框架xutils的使用
2016-05-12 11:35 848这里写一些网络请求的相关 //初始化相关参数和对象 publi ... -
android端版本更新
2016-05-12 11:26 736整个思路,先判断服务端当前版本是不是高于本地版本,高的话可以选 ...
相关推荐
退出app的两种方式 1 创建activity的基类,让所有的activity都继承该基类,在基类中创建一个静态的activity列表,并在oncreate方法添加该activity, 在退出时,遍历该list的activity,逐个关闭每一个activity,从而...
本文将围绕"ios app退出系统的源代码"这一主题,详细解析如何在iOS中实现类似功能。 首先,我们需要明确一点:在生产环境中,不应该使用这种方法,因为苹果的App Store审核指南明确禁止了这种行为。但是,为了理解...
2. 切入后台finish掉App: 另一种方法是在App切到后台时,自动结束所有活动。这通常需要监听系统广播,比如ACTION_SCREEN_OFF(屏幕关闭)或ACTION_USER_PRESENT(用户解锁)。然而,这种方法可能导致用户体验下降,...
以下就是关于"按2次退出app"这一功能的详细解释: 一、需求分析 在Android应用设计中,按两次返回键退出应用的需求源于用户体验和安全性考虑。它提供了一种防止用户意外退出应用的方法,因为只需一次按键就可能导致...
总结,要在Android Studio中实现Service在app退出后继续运行并开机自启动,需要理解Service的生命周期,正确配置BroadcastReceiver,以及采取保活策略。同时,对App的卡死崩溃进行监控和处理,以提升用户体验和应用...
### 深入解析BREW_APP的创建、运行与退出机制 #### 一、概述 本文将详细探讨BREW_APP的创建、运行以及退出机制的关键技术细节。BREW(Binary Runtime Environment for Wireless)是一种用于开发无线设备应用的技术...
2. **文件存在性检查**: - 在安装目录`/install`下,系统使用`file_exists()`函数检查`install.lock.php`文件的存在,如果存在则直接退出,避免了重复安装可能导致的安全问题。这种做法有助于防止重装漏洞,确保...
**深入BREW APP创建,运行,退出机制** BREW(Binary Runtime Environment for Wireless)是由 Qualcomm 开发的一个操作系统平台,主要用于移动设备,特别是早期的CDMA网络手机。BREW应用程序(APP)是为这个平台...
选集功能允许用户在观看电视剧或动漫时自由切换不同集数,无需退出应用再次搜索。缓存功能则可以在用户有网络连接时预先下载视频,以便在无网络或者网络不稳定的情况下观看,提高了观影的流畅度。而下载功能则是让...
选集功能则让用户可以方便地选择并切换不同的剧集,无需退出当前播放页面。秒播技术优化了视频加载速度,减少了用户等待时间。缓存和下载功能则让观众可以在没有网络连接时也能继续观看喜欢的影片,增强了用户体验。...
android完美退出app的实例代码.pdf
监听打开/关闭APP 在接收动作的位置添加你所想要做的事情
当用户选择“退出”时,我们可以退出抽签程序。我们可以通过组合“对话框”、“控制”和“数字”积木块来实现这个功能。 使用 App Inventor 制作一个抽签 App 需要经过多个步骤,包括绘制设计草图、素材准备、项目...
安卓app开发项目-完全退出程序的方法(源码).zip安卓app开发项目-完全退出程序的方法(源码).zip安卓app开发项目-完全退出程序的方法(源码).zip安卓app开发项目-完全退出程序的方法(源码).zip安卓app开发项目-完全退出...
开发者应当学会如何负责任地编写后台应用,同时文档也提供了退出后台执行的选项。 最后,文档还讨论了应用性能调优的必要性,以及iOS环境对应用行为的多种影响。 整个文档是苹果开发者计划的组成部分,旨在帮助...
- 守护进程:应用可以设置一个后台守护进程,当主进程退出时,守护进程会检测到并启动新的进程。 - 信号处理:通过捕获特定的系统信号(如SIGINT或SIGTERM),应用可以在接收到这些信号后执行清理操作并安排重启。...
- **Step out**: 退出方法。快捷键:`F8`。 - **Run to cursor**: 运行至光标处。快捷键:`F9`。 - **Evaluate expression**: 评估表达式。快捷键:`F8`。 - **Resume program**: 继续程序执行。快捷键:`R`。 - **...
2. **即时通讯(IM)系统**:核心功能是单聊和群聊。要实现即时消息传递,需要构建一套稳定、高效的IM系统。这涉及到消息的发送、接收、存储和同步机制,以及在线状态管理,确保信息的实时性。 3. **数据加密**:为了...
标题"Android安卓app 让程序假退出,仍在后台运行.zip"所涉及的核心知识点在于如何让应用看似退出但实际上仍在后台运行,这通常是为了实现某些特定的功能,如音乐播放、定时任务或者服务的持续运行。 一、Android...
在iOS平台上,一个应用程序的生命周期包括启动、运行、暂停、后台运行、唤醒和退出等多个阶段。这些阶段由系统根据用户行为和系统资源管理自动控制。例如,`applicationDidFinishLaunching:`方法是在应用启动时调用...