編輯:關於Android編程
如果是直接按home鍵退到桌面,並沒有實際退出整個應用。Activity依然保存在棧中。那麼,怎樣才能關閉所有activity退出整個應用呢?那麼想法當然是用一個集合吧所有的activity保存起來了。那麼用什麼呢?可以用List.用ArrayList還是用linkedList呢?因為這個List主要用於添加和刪除。並不需要提供隨機訪問。因此,使用linkedList.
我們寫一個類,注意這個類要用單例模式:
package cn.com.smartcost.offer.util;
import java.util.LinkedList;
import java.util.List;
import android.app.Activity;
import android.app.Application;
/**
* 主要用於退出整個應用
*
* @date 2014-1-3 10:55:10
*
*/
public class SysApplication extends Application {
private List mList = new LinkedList();
private static SysApplication instance;
private SysApplication() {
}
public synchronized static SysApplication getInstance() {
if (null == instance) {
instance = new SysApplication();
}
return instance;
}
/**
* 在需要退出的Activity的onCrete()方法
* @param activity
*/
public void addActivity(Activity activity) {
mList.add(activity);
}
public void exit() {
try {
for (Activity activity : mList) {
if (activity != null)
activity.finish();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
System.exit(0);
}
}
public void onLowMemory() {
super.onLowMemory();
System.gc();
}
}
在需要關閉的Activity的onCreate()方法中,使用:
SysApplication.getInstance().addActivity(this);
將activity添加到list中去。
在需要退出的地方:
//捕捉按鍵
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0){
if(count == 0){
++count; //count+1,到1的時候退出應用
Toast.makeText(LoginActivity.this, "再按一次返回鍵退出縱橫材價",
Toast.LENGTH_LONG).show();
}
if(count == 1){
SysApplication.getInstance().exit();
}
return false;
}
//繼續執行父類的其他點擊事件
return super.onKeyDown(keyCode, event);
}Activity.finish():
當你調用此方法的時候,系統只是將最上面的Activity移出了棧,並沒有及時的調用onDestory()方法,其占用的資源也沒有被及時釋放。因為移出了棧,所以當你點擊手機上面的“back”按鍵的時候,也不會找到這個Activity。
System.exit(0)
這玩意是退出整個應用程序的,是針對整個Application的。將整個進程直接KO掉。
Activity.onDestory()
the system is temporarily destroying this instance of the activity to save space.
系統銷毀了這個Activity的實例在內存中占據的空間。
在Activity的生命周期中,onDestory()方法是他生命的最後一步,資源空間什麼的都沒有咯~~。當重新進入此Activity的時候,必須重新創建,執行onCreate()方法。
實例解析如何在Android應用中實現彈幕動畫效果
在B站或者其他視頻網站看視頻時,常常會打開彈幕效果,邊看節目邊看大家的吐槽。彈幕看起來很有意思,今天我們就來實現一個簡單的彈幕效果。 從直觀上,彈幕效果就是在一
Android實用圖文教程之代碼混淆、第三方平台加固加密、渠道分發
第一步:代碼混淆(注意引入的第三方jar)在新版本的ADT創建項目時,混碼的文件不再是proguard.cfg,而是project.properties和proguard
Android中ViewPager實現滑動條及與Fragment結合的實例教程
自主實現滑動指示條先上一個基本效果圖:1.XML布局布局代碼如下:<LinearLayout xmlns:android=http://schemas.androi
Android實現換膚功能(一)
上周有個朋友給建議說講講換膚吧,真巧這周公司的工作安排也有這個需求,換的地方之多之繁,讓人傷神死了。正所謂磨刀不誤砍柴工,先磨下刀,抽出一個工具類,寫了個關於換膚的簡單d