android 退出系统
/**
*
*/
package com.szkingdom.android.phone.utils; import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer; import android.app.Activity;
import android.content.Context;
import android.util.Log;
import android.view.View;
import android.webkit.CookieManager; import com.szkingdom.activity.basephone.ActivityStackMgr;
import com.szkingdom.android.phone.R;
import com.szkingdom.android.phone.widget.KdsDialog;
import com.szkingdom.android.phone.widget.KdsSureDialog;
import com.szkingdom.common.android.base.OriginalContext;
import com.szkingdom.common.android.base.Res;
import com.szkingdom.commons.log.LogcatHelper;
import com.szkingdom.android.phone.KdsAgentMgr;
import com.szkingdom.android.phone.widget.KdsDialog.OnClickButtonListener; /**
* @author duminghui
*
*/
public class ExitConfirm
{
private static KdsDialog mKdsSureDialog; public static final void confirmExit(final Context context)
{ mKdsSureDialog = new KdsDialog(context,"提示",Res.getString(R.string.kds_exit_dialog_content), new OnClickButtonListener() { @Override
public void onClickButton(View view) {
// TODO Auto-generated method stub }
}, new OnClickButtonListener() { @Override
public void onClickButton(View view) {
if(mKdsSureDialog != null && mKdsSureDialog.isShowing()){
mKdsSureDialog.dismiss();
finishProcess(context);
}
}
});
mKdsSureDialog.show();
} /**
* 结束整个进程
* @param context
*/
public static void finishProcess(Context context){
//友盟统计接口方法,如果开发者调用 Process.kill 或者 System.exit 之类的方法杀死进程,
//请务必在此之前调用此方法,用来保存统计数据
KdsAgentMgr.onKillProcess(OriginalContext.getContext());
//清除所有cookie
CookieManager.getInstance().removeAllCookie();
LogcatHelper.getInstance(context).stop();
ActivityStackMgr.exitActivityHistory();
Activity activity = (Activity) context;
activity.finish();
killProcess(context);
} private static void killProcess(Context ctxt)
{
String packageName = ctxt.getPackageName();
String processId = "";
try
{
Runtime r = Runtime.getRuntime();
Process p = r.exec("ps");
BufferedReader br = new BufferedReader(new InputStreamReader(
p.getInputStream()));
String inline;
while ((inline = br.readLine()) != null)
{
if (inline.contains(packageName))
{
break;
}
}
br.close();
StringTokenizer processInfoTokenizer = new StringTokenizer(inline);
int count = ;
while (processInfoTokenizer.hasMoreTokens())
{
count++;
processId = processInfoTokenizer.nextToken();
if (count == )
{
break;
}
}
// Log.e(TAG, "kill process : " + processId);
r.exec("kill -15 " + processId);
} catch (IOException ex)
{
// Log.e(TAG, "" + ex.getStackTrace());
}
} }
public static List<ISubTabView> activityHistoryWindows = new ArrayList<ISubTabView>();
public static void exitActivityHistory(){
try{
for(int i = activityHistoryWindows.size()-; i >= ; i--)
((Activity)activityHistoryWindows.get(i)).finish();
}catch(Exception e){ }finally{
activityHistoryWindows.clear();
}
}
android 退出系统的更多相关文章
- [Irving] Android 点击两次返回退出系统
Activity 中定义成员变量: private Long firstClickTime = 0l; //记录第一次点击时间 重载OnKeyDown方法 代码: @Override public b ...
- Android 连续按两次back键退出系统
需求:在程序的首页,连续按两次back键退出Androd程序. 第一步:新建一个GApplication类继承Application,在GApplication中添加一个用于存放Activity的集合 ...
- 图解Android - Android GUI 系统 (2) - 窗口管理 (View, Canvas, Window Manager)
Android 的窗口管理系统 (View, Canvas, WindowManager) 在图解Android - Zygote 和 System Server 启动分析一 文里,我们已经知道And ...
- 图解Android - Android GUI 系统 (5) - Android的Event Input System
Android的用户输入处理 Android的用户输入系统获取用户按键(或模拟按键)输入,分发给特定的模块(Framework或应用程序)进行处理,它涉及到以下一些模块: Input Reader: ...
- 管理Activity 用户在主界面按两次回退退出系统
1:定义一个用于管理Activity的类. /* * 用于管理Activity */ public class SysApp extends Application{ private List< ...
- Android日志系统驱动程序Logger源代码分析
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6595744 我们知道,在Android系统中, ...
- 【转】理解 Android Build 系统----不错
$ mmm -help用法:make [选项] [目标] ...选项: -b, -m 忽略兼容性. -B, --always-make Unconditionally make all targets ...
- Android双系统实现
1. 前言: 刷机,似乎是安卓手机用户的一项专利,可是,会刷机的用户一般都是喜新厌旧的角色. 一个系统用久了.就想换到还有一个系统.或者认为没有原来的好,或者又认为要换回去.这样又要重刷. 可是刷来刷 ...
- 《深入理解Android 卷III》第五章 深入理解Android输入系统
<深入理解Android 卷III>即将公布.作者是张大伟.此书填补了深入理解Android Framework卷中的一个主要空白.即Android Framework中和UI相关的部分. ...
随机推荐
- Linux 查找一个函数在哪调用
grep "function has" -R ThinkPHP
- ios-UI-汤姆猫德游戏实现
// // ViewController.m // UI-猜拳游戏 // // Created by jzq_mac on 15/7/15. // Copyright (c) 2015年 jz ...
- java 中的静态(static)代码块
类字面常量 final 静态域不会触发类的初始化操作 非 final static 静态域(以及构造器其实是一种隐式的静态方法) Class.forName():会自动的初始化: 使用 .class来 ...
- Java专业技能面试问题(不定时更新)
刚看到园友五月的仓颉<面试感悟----一名3年工作经验的程序员应该具备的技能>感觉很不错,不论是为面试跳槽准备,还是打算深化精进自己的技术都可以参考一下.面向工资编程多少也有点道理,虽然技 ...
- SYN-Flood防御方法之一Synproxy
SYN-Flood攻击: 攻击者发送大量的SYN给服务器. 服务器必须针对每一个SYN请求回送一个SYN-ACK 应答包,此时服务器就必须保持一条半开放的连接,直到接收到一个对应的ACK应答包为止. ...
- ubuntu 绘制lenet网络结构图遇到的问题汇总
Couldn't import dot_parser, loading of dot files will not be possible的问题 1 .sudo pip uninstall pypar ...
- 修改eclipse最近访问的工程的配置文件
此文件为:org.eclipse.ui.ide.prefs 配置项为:RECENT_WORKSPACES= 示例:RECENT_WORKSPACES=E\:\\Workspaces\\wokspace ...
- linux的chmod,chown命令 详解
指令名称 : chmod 使用权限 : 所有使用者 使用方式 : chmod [-cfvR] [--help] [--version] mode file... 说明 : Linux/Unix 的档案 ...
- Rabbit MQ 学习 (二)
接连上一篇 :安装Erlang环境 之后,这篇安装 Rabbit Server 官网下载安装包:http://www.rabbitmq.com/install-windows.html 打开安装一路下 ...
- SSH 项目中 用Hibernate底层 简单的封装DAO层
废话不多少了,主要是使用hibernate的查询方法,自己封装了DAO层,供service来方便使用. 首先:必须要继承的 public class CommonDao extends Hiberna ...