android 退出APP

來源:互聯網
上載者:User

在onCreate() 中將Activity 執行個體 放到 線性容器中,,,, 退出時,一頓 ((Activity)list.gert(i)).finsh();

存在的問題也是很明顯的。。。

儲存了Activity的引用,是否會涉及,記憶體回收的問題。。。。(你得直到下面用的 是 強引用 的方式 哦。)

package com.mystore.customer.activity;import java.io.PrintWriter;import java.io.StringWriter;import java.io.Writer;import java.lang.Thread.UncaughtExceptionHandler;import java.util.LinkedList;import java.util.List;import mylog.Log;import android.app.Activity;import android.app.Application;import android.content.pm.PackageManager.NameNotFoundException;import com.mystore.customer.activity.lookfor.LookForCustomerActivity;import com.mystore.customer.activity.more.MoreMessageActivity;import com.mystore.customer.activity.ramble.HotStoreActivity;import com.mystore.customer.activity.search.SearchMainActivity;public class CustomerApplication extends Application {private static final String TAG = "CustomerApplication";private static Application application;public static String VERSION = "1.1";public static Long EXIT_TIMEOUT = 2500l;//add activity container,used to exit app private List<Activity> activityList = new LinkedList<Activity>();private static CustomerApplication instance;// 單例模式中擷取唯一的ExitApplication 執行個體public static CustomerApplication getInstance() {if (null == instance) {instance = new CustomerApplication();}return instance;} // 添加Activity 到容器中public void addActivity(Activity activity) { activityList.add(activity); }  // 遍曆所有Activity 並finishpublic void exit() {for (Activity activity : activityList) {activity.finish();}System.exit(0);}public void popToMainTab(){for (int i=activityList.size()-1;i>0;i--) {Activity activity = activityList.get(i);if(activity!=null){if(  (HotStoreActivity.class).equals(activity.getClass())  || (MainActivity.class).equals(activity.getClass())  || (SearchMainActivity.class).equals(activity.getClass())  || (MoreMessageActivity.class).equals(activity.getClass())  || (LookForCustomerActivity.class).equals(activity.getClass())){//跳出迴圈break;}else{activity.finish();}}}} @Overridepublic void onCreate() {super.onCreate();Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler() {public void uncaughtException(Thread thread, Throwable throwable) {final Writer result = new StringWriter();final PrintWriter printWriter = new PrintWriter(result);throwable.printStackTrace(printWriter);String strStacktrace = result.toString();printWriter.close();Log.e("", "================================");Log.e("", "Force close occur, thread is: " + thread+ " throwable: " + throwable);Log.e("", " stacktrace " + strStacktrace);Log.e("", "================================");}});application = this;try {VERSION = this.getPackageManager().getPackageInfo(this.getPackageName(), 0).versionName;} catch (NameNotFoundException e) {e.printStackTrace();}}public static Application getApplication() {return application;}}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.