Cordova for android 退出事件怎么在App中处理退出按钮事件

android&退出activity&的方式总结
在android中使用:[activityname].this.finish();&
只是退出了activity的堆栈中,要真正的退出程序在手机cpu中的运行,当应用不再使用时,通常需要关闭应用,可以使用以下三种方法关闭android应用:
使用killProcess()函数,首先获取当前进程的id,然后杀死该进程:
android.os.Process.killProcess(android.os.Process.myPid());
通过这种方式不能将应用程序完全杀死,并且他不会把当前应用应用的Activity的task任务栈清空
在activity的生命周期函数中添加如下的函数,强制关闭与该包有关联的一切执行:
ActivityManager&am&=&(ActivityManager)getSystemService&(Context.ACTIVITY_SERVICE);&
am.restartPackage("packagename");&
还需要在AndroidManifest.xml文件中加入如下的权限:&uses-permission&android:name="android.permission.RESTART_PACKAGES"&/&
此做法:只能杀死别人,不能杀死自己
三、 终止当前正在运行的Java虚拟机,导致程序终止
System.exit(0);
不会把自己的应用程序杀死
企业中做法:
创建类app 继承Application
AndroidMainfest --&name --&app
//声明该类为整个应用程序全局的实例
创建整个应用程序全局的实例
App.class:
ArrayList&Activity&
其他的Activity中:
public void onCreate(Bundle savedInstanceState) {
App app = (App) getApplication();//获取应用程序全局的实例引用
app.activities.add(this);&&&
//把当前Activity放入集合中
public void onDestory(){
App app = (App) getApplication();//获取应用程序全局的实例引用
app.activities.remove(this); //把当前Activity从集合中移除
安全退出:
在菜单退出按钮的事件中定义如下代码:
App app = (App) getApplication();
List&Activity& activities =
for(Activity act:activities){
& act.finish();//显式结束
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。Android 完美退出 App (Exit)_android开发_ThinkSAAS
Android 完美退出 App (Exit)
Android 完美退出 App (Exit)
内容来源: 网络
最近两天为了解决Android上面退出程序问题折腾了半死,在google & baidu 上面找了很久、很久出来的完全千篇一律,说的方法有三,但是经过我试验后全部不行。
三个方法分别是:
killProcess, 这种方式当你kill后 Activity 会返回到上一个ActivityAndroid Level 8(包含8)前使用一个API来操作,Level8以后又是另外一种,所以不能通用使用 FLAG_ACTIVITY_CLEAR_TOP,从 A 到 B
下面介绍自己的方式:
大家都知道 Android 的 Activity 是存着历史栈的,比如从 A -& B -& C,C 完成 finish 后回到 B,把所有的Activity 都 finish了,程序就自然退出了。 当然在 finish 的同时也需要是否自己程序的其他资源。所以需要想个办法把 Activity 给存起来。然后在程序退出的地方调用它们的 finish()方法。
使用全局变量。对了,第一个想到的就是继承 Application,代码入下。
public class AgentApplication extends Application {
private List&Activity& activities = new ArrayList&Activity&();
public void addActivity(Activity activity) {
activities.add(activity);
public void onTerminate() {
super.onTerminate();
for (Activity activity : activities) {
activity.finish();
onDestroy();
System.exit(0);
然后在 Activity
onCreate 的时候来调用
addActivity (),有人可能想到这个Application需要在所有的 Activity
onCreate的时候都使用,需要做一个单例实例。其实根本不需要。在 Activity 中使用
this.getApplication() 就可以了。
最后在你需要推出程序的地方调用 application.onTerminate() 就可以了。记住:super.onTerminate() 必须调用,代码中的 onDestroy()是我自己的释放其他资源的方法,不是系统的。
运行以上代码后,在LogCat 中会出现一行提示:
证明你的程序退出了。现在你可以测试了。
希望对大家有用。同时感谢同事胡楠帮我处理其他问题,使得我才有时间来 写博客,谢谢。 
PHP开发框架
开发工具/编程工具
服务器环境
ThinkSAAS商业授权:
ThinkSAAS为用户提供有偿个性定制开发服务
ThinkSAAS将为商业授权用户提供二次开发指导和技术支持
让ThinkSAAS更好,把建议拿来。
开发客服微信1.在android应用当中,很多时候都要用到listView,但如果ListView当中添加Button后,ListView 自己的
1 public void onItemClick(AdapterView&?& parent, View view, int position,
long id) {
就不能执行了,这里就涉及到一个焦点的问题.
在适配器嗦加载的XML文件中
把& RelativeLayout&或&linearLayout&中
android:descendantFocusability= "blocksDescendants"
和在ListView中需要点击的按钮&Button&中
android:focusable = "false"
这两项的设置很关键,如果不设置,将导致ListView的ItemClick事件将无法触发,该事件被ImageButton的click事件屏蔽了。
2.对上面两个属性进行一下解释
android:descendantFocusability ,官方API给出的解释是:
他就是用于定义ViewGroup和子控件焦点的关系
android:descendantFocusability = "beforeDescendants"
  viewgroup会优先其子类控件而获取到焦点
android:descendantFocusability = "afterDescendants"&&&
  viewgroup只有当其子类控件不需要获取焦点时才获取焦点
android:descendantFocusability = "blocksDescendants"&
  viewgroup会覆盖子类控件而直接获得焦点
而我们用得最多的就是第三个了。
android:focusable&& 这个就很简单了就是设置是否获得焦点
阅读(...) 评论()

我要回帖

更多关于 android添加按钮事件 的文章

 

随机推荐