關於Android退出程序清除sharedPreference

退出程序個人認爲也沒什麼必要,其實都是產品閒的蛋疼沒事幹弄的一些沒用的功能。很多產品根本不需要這個功能。不過既然用到了,感覺還是得簡單的說一下。

這裏網上搜了很多,雙擊退出的,感覺基本沒用,只是在你程序運行的首頁,也就是你app的主操作界面有點用途。在你主操作界面的時候雙擊退出你的程序,其實也不是什麼退出,只是返回桌面了。

還有一種是點擊退出登錄,直接將你的app的activity全部finish掉,還是退到桌面。其實說白了,感覺有點欺騙客戶的感覺。

雖然我特別想嚴謹點,但是這個東西我找尋了半天也沒什麼結果。個人能力確實不行。

就假的退出程序說說吧。


類似單例的,原理很簡單,將你要finish的activity全部add到一個list中,然後點退出的時候,把list裏面的 activity全部remove掉。

public class Back extends Application{
    private List<Activity> activityList = new LinkedList<Activity>();
    private static Back instance;
    private Back(){}
    //單例模式獲取唯一的Back
    public static Back getInstance(){
        if(null==instance){
            instance=new Back();
        }
        return instance;
    }
    //添加activity到容器中
    public void addActivity(Activity activity){
        activityList.add(activity);
    }
    //遍歷所有的Activiyfinish
    public void exit(){
        for(Activity activity:activityList){
            activity.finish();
        }
        System.exit(0);
    }
}

代碼粘貼一下吧。

說道這裏就又想多插入一個小內容了。

退出的話,我們進來是要重新進行登錄的嘛,但是一般的app我們都會保存登錄的信息,這樣方便用戶。

所以,退出登錄的時候,最好是把我們的sharedpreference也清空了。

如下:

/** * 刪除方法 這裏只會刪除某個文件夾下的文件,如果傳入的directory是個文件,將不做處理 * * @param directory */
private static void deleteFilesByDirectory(File directory) {
    if (directory != null && directory.exists() && directory.isDirectory()) {
        for (File item : directory.listFiles()) {
            item.delete();
        }
    }
}

然後使用的時候:

//清除緩存的方法
deleteFilesByDirectory(new File("/data/data/"
        + getApplicationContext().getPackageName() + "/shared_prefs"));
Back.getInstance().exit();

好啦好啦,感覺廢話說很多了,就這啦。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章