亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

應用的優雅退出

2019-11-09 14:16:35
字體:
來源:轉載
供稿:網友

開發過程中 需要退出APP,這個時候 就需要對退出進行處理 。我最常用的是兩種方式,第一種方式是:建立一個全局容器類將activity都保存起來,退出時候遍歷所有的activity

第二種方式是建立廣播,當我退出的時候發送一個退出廣播。

第一種方式 定義BaseActivity 如下代碼:

 @Override    PRotected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);// 添加Activity到堆棧        AtyContainer.getInstance().addActivity(this);    }    @Override    protected void onDestroy() {        super.onDestroy();// 結束Activity&從棧中移除該Activity        AtyContainer.getInstance().removeActivity(this);    }}class AtyContainer {    private AtyContainer() {    }    private static AtyContainer instance = new AtyContainer();    private static List<Activity> activityStack = new ArrayList<Activity>();    public static AtyContainer getInstance() {        return instance;    }    public void addActivity(Activity aty) {        activityStack.add(aty);    }    public void removeActivity(Activity aty) {        activityStack.remove(aty);    }    /**     * 結束所有Activity     */    public static void finishAllActivity() {        for (int i = 0, size = activityStack.size(); i < size; i++) {            if (null != activityStack.get(i)) {                activityStack.get(i).finish();            }        }        Log.d("調用finfshAllactivity", "-------------------");        activityStack.clear();    }

在MainActivity 里面繼承BaseActivity  實現如下代碼:

private boolean isExit = false;

@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {    if (keyCode == KeyEvent.KEYCODE_BACK) {        //   Toast.makeText(this, "點擊兩次離開", Toast.LENGTH_SHORT).show();        ToQuitTheApp();        return false;    } else {        return super.onKeyDown(keyCode, event);    }}//封裝ToQuitTheApp方法private void ToQuitTheApp() {    if (isExit) {      finishAllActivity();    } else {        isExit = true;        Toast.makeText(MainActivity.this, "再按一次退出APP", Toast.LENGTH_SHORT).show();        mHandler.sendEmptyMessageDelayed(0, 3000);// 3秒后發送消息    }}//創建Handler對象,用來處理消息Handler mHandler = new Handler() {    @Override    public void handleMessage(Message msg) {//處理消息        // TODO Auto-generated method stub        super.handleMessage(msg);        isExit = false;    }};

這個時候 即可優雅退出 。

第二種方式 定義BaseActivity  代碼如下 

private static final String EXITACTION = "action.exit";private ExitReceiver exitReceiver = new ExitReceiver();@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    IntentFilter filter = new IntentFilter();    filter.addAction(EXITACTION);    registerReceiver(exitReceiver, filter);}@Overrideprotected void onDestroy() {    super.onDestroy();    unregisterReceiver(exitReceiver);}public class ExitReceiver extends BroadcastReceiver {    @Override    public void onReceive(Context context, Intent intent) {        Toast.makeText(context, "廣播方式離開", Toast.LENGTH_SHORT).show();        BaseActivity2.this.finish();    }}

同樣在MainActivity里面 這樣處理

@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {     ExitReceiver exit=new ExitReceiver();    Intent intent = new Intent(Intent.ACTION_MAIN);    intent.addCategory(Intent.CATEGORY_HOME);         exit.onReceive(MainActivity.this,intent);    return super.onKeyDown(keyCode, event);}

github 地址:https://github.com/yuanchongzhang/activity_exit


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人在线小视频| 一本色道久久综合狠狠躁篇的优点| 欧美风情在线观看| 97国产精品久久| 国产精品久久久久久久久粉嫩av| 亚洲欧美日韩中文视频| 国产a∨精品一区二区三区不卡| 国产成人在线亚洲欧美| 国产成人aa精品一区在线播放| 久久精品中文字幕一区| 国产精品尤物福利片在线观看| 久久精品久久久久久| 国产成人一区二区在线| 国产91精品久久久| 亚洲人成五月天| 久久久久久久av| 国产精品777| 日韩在线视频观看正片免费网站| 国产成人在线亚洲欧美| 欧美精品免费在线观看| 2018日韩中文字幕| 久久精彩免费视频| 色偷偷噜噜噜亚洲男人| 黄色成人在线播放| 色综合久久中文字幕综合网小说| 欧美影院久久久| 热re91久久精品国99热蜜臀| 九九热精品视频在线播放| 成人av在线网址| 久久久免费电影| 国产美女久久精品香蕉69| 国产精品91免费在线| 精品国产一区二区三区久久狼5月| 日韩专区在线播放| 国产丝袜一区视频在线观看| 国产精品视频久久久久| 日韩免费不卡av| 国产亚洲综合久久| 国产91免费看片| 欧美大片在线看| 精品综合久久久久久97| 97视频在线观看视频免费视频| 97色伦亚洲国产| 精品成人乱色一区二区| 国产日韩视频在线观看| 69久久夜色精品国产69乱青草| 精品中文字幕久久久久久| 欧美裸体xxxx极品少妇软件| 69av在线视频| 国产欧美精品一区二区三区介绍| 亚洲人在线观看| 91精品国产高清久久久久久91| 国产va免费精品高清在线| 91人人爽人人爽人人精88v| 亚洲欧美日韩高清| xvideos成人免费中文版| 高清欧美性猛交xxxx| 国产精品偷伦一区二区| 68精品国产免费久久久久久婷婷| 欧美精品情趣视频| 一区国产精品视频| 2023亚洲男人天堂| 亚洲第一精品久久忘忧草社区| 青青草原成人在线视频| 亚洲美女性生活视频| 亚洲精品一区av在线播放| 国产成人精品在线| 日韩中文娱乐网| 日本高清+成人网在线观看| 91久久综合亚洲鲁鲁五月天| 亚洲自拍偷拍在线| 国产精品黄色影片导航在线观看| 日韩麻豆第一页| 亚洲电影第1页| 欧美久久久精品| 国产一区红桃视频| 精品久久久久久久久久久久久| 日韩欧美亚洲成人| 久久久亚洲网站| 91po在线观看91精品国产性色| 萌白酱国产一区二区| 亚洲三级黄色在线观看| 久久成人在线视频| 国产精品日韩专区| 91精品国产九九九久久久亚洲| 久久精品国产成人| 欧美激情国内偷拍| 成人免费看吃奶视频网站| 久久人91精品久久久久久不卡| 亚洲人成绝费网站色www| 日韩av在线播放资源| 亚洲精品美女在线观看| 成人国产在线视频| 欧美国产日韩xxxxx| 亚洲色图在线观看| 亚洲人成在线播放| 国产精品亚洲一区二区三区| 亚洲欧美制服另类日韩| 欧美日韩成人在线播放| 久久久久久亚洲精品不卡| 久久久久久久色| 中文字幕亚洲欧美日韩在线不卡| 亚洲免费av片| 欧美激情视频在线免费观看 欧美视频免费一| 欧美国产乱视频| 亚洲国产精品中文| 91精品综合久久久久久五月天| 高清欧美性猛交xxxx黑人猛交| 一区二区福利视频| 国产精品精品久久久久久| 精品在线观看国产| 91久久久久久国产精品| 国产国语videosex另类| 国内外成人免费激情在线视频网站| 永久免费精品影视网站| 久久成人精品一区二区三区| 姬川优奈aav一区二区| 中文字幕精品www乱入免费视频| 亚洲欧美色婷婷| 91精品国产91久久久久久吃药| 97精品国产aⅴ7777| 国产精品亚洲精品| 欧美大片网站在线观看| 亚洲国产私拍精品国模在线观看| 欧美激情亚洲激情| 国产中文欧美精品| 97在线视频免费观看| 久久久久国产精品一区| 亚洲国产精品久久| 国产有码在线一区二区视频| 国产成人在线一区二区| 国产精品十八以下禁看| 久久久精品中文字幕| 欧美综合在线第二页| 成人h片在线播放免费网站| 一区二区在线免费视频| 在线观看欧美日韩| 欧美精品免费在线| 亚洲欧美国产一区二区三区| 日本欧美精品在线| www.日韩视频| 精品在线小视频| 91在线免费看网站| 国产福利精品在线| 国产91九色视频| 欧美成人性色生活仑片| 91免费看视频.| 日韩中文字幕在线播放| 91在线视频一区| 欧美老肥婆性猛交视频| 91精品一区二区| 九色成人免费视频| 亚洲最大的av网站| 国产精品一区二区三区免费视频| 狠狠躁夜夜躁人人爽超碰91| 久久久久久久久爱| 亚洲社区在线观看| 久久在精品线影院精品国产| 亚洲国产成人在线播放| 欧美日韩午夜激情| 国模精品一区二区三区色天香| 亚洲精品美女在线观看| 国产精品热视频| 久久91精品国产91久久久|