前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MyApplication.getInstance().exit() 与onDestroy 、finish(),onKeyDown()的关系

MyApplication.getInstance().exit() 与onDestroy 、finish(),onKeyDown()的关系

作者头像
wust小吴
发布2019-07-08 15:12:55
8710
发布2019-07-08 15:12:55
举报
文章被收录于专栏:风吹杨柳风吹杨柳

https://cloud.tencent.com/developer/article/1458975

因为我们有时候会用到全局变量application  

在一个activity启动的时候我们把 这个activity加入到 application中

MyApplication.getInstance().addActivity(this);

当我们退出的时候  比如onkeydown的时候用

MyApplication.getInstance().exit()   

这个代码也只会在程序的主activity中执行

首先我们是onKeyDown结束一个activity  这个时候如果直接调用MyApplication.getInstance().exit()

那么它会是这样执行的  会遍历所以加入的activity执行finish()

而finish执行的时候会执行一次ondestroy()

但是如果在单独的一个activity里面,ondestroy()就不会再被执行了,什么意思呢,

就是如果你有一些资源需要自己手动在程序退出的时候销毁掉或者断开  比如  与服务器的长连接   这个必须是自己手动断开的,也就是必须触发这个指令

那么这个代码就是在ondestroy()中执行的,

如果你直接在onkeyDown  也就是通常看见的连接点击退出程序的时候直接调用MyApplication.getInstance().exit() 就会出错了

当前的你调用的这个类中的ondestroy将不会被执行的

下面是onkeydown和ondestroy的执行顺序:

10-18 21:28:21.471: I/TAG(10652): 我是onkeydown

10-18 21:28:23.640: I/TAG(10652): 我是onDestroy

finish的执行顺序在他们之前

而我的程序是这样写的,在MainActivity中:

public boolean onKeyDown(int keyCode, KeyEvent event) {

// TODO Auto-generated method stub

Log.i("TAG", "我是onkeydown");

if(keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN){

if(okToExit){

//如果连续点击就退出  退出之前先弹出提示 或者做点别的提示,类似暴风影音提示你再玩会儿把,

showback();

}

}

}

private void showback(){

AlertDialog.Builder builder = new Builder(MainActivity.this);

builder.setNegativeButton("取消",

new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

dialog.dismiss();

finish();

}

});

}

protected void onDestroy() {

// TODO Auto-generated method stub

Log.i("TAG", "我是onDestroy");

BreakChatServe();

MyApplication.getInstance().exit();

super.onDestroy();

}

注意这个东西只存在于整个程序的主类中

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015年10月18日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档