cari

Rumah  >  Soal Jawab  >  teks badan

android退出APP问题?

我在一个Android APP里面给notification设置了个按钮,希望点击之后能够退出APP,停止一切用到的服务(例如:科大讯飞的语音识别服务,自己启动的一些service,打开过的activity)。
我用了以下两种方法
System.exit(0)
Process.killProcess(Process.myPid()) 

但是都不能完全退出APP,可以杀死service,也可以停止语音识别等服务,但是没有退出activity,按下home键把应用后台了之后点击那个停止按钮之后打开APP没有从头开始启动第一次打开的launch页面,而是直接打开了刚刚后台了的时候开着的activity。

我该怎么准确退出这个APP回到那种什么都没开过的那种初始状态。

谢谢大神们 !

高洛峰高洛峰2889 hari yang lalu521

membalas semua(4)saya akan balas

  • PHP中文网

    PHP中文网2017-04-18 09:08:09

    Anda boleh mengawal semua aktiviti dalam baris gilir anda sendiri

    public class ActivityUtils {
    
        private static List<Activity> activities = new ArrayList<>();
        
        public static void addActivity(Activity activity) {
            activities.add(activity);
        }
    
        /**
         * 关闭所有Activity
         */
        public static void finishAllActivity() {
            for (Activity activity : activities) {
                if (!activity.isFinishing()) {
                    activity.finish();
                }
            }
        }
    }

    Tambahkan kaedah onCreate dalam BaseActivity anda:

    ActivityUtils.addActivity(this);

    Kemudian hubungi

    di mana anda memerlukannya

    ActivityUtils.finishAllActivity();

    Semoga ia membantu anda

    balas
    0
  • ringa_lee

    ringa_lee2017-04-18 09:08:09

    Dengar aktiviti terbuka dalam Aplikasi dan matikan semua aktiviti selepas mengklik butang

    application.registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {}

    balas
    0
  • ringa_lee

    ringa_lee2017-04-18 09:08:09

    Nampaknya tiada siapa yang menjawab, jadi saya akan siarkan penyelesaian saya sendiri.
    Masih tidak tahu cara untuk keluar sepenuhnya dari APP, jadi saya mula-mula mengosongkan timbunan aktiviti dan kemudian mematikan proses itu.

    ActivityManager activityMgr= (ActivityManager)this.getSystemService(ACTIVITY_SERVICE);
     activityMgr.killBackgroundProcesses(getPackageName());
     android.os.Process.killProcess(android.os.Process.myPid()); 
    System.exit(0);

    balas
    0
  • ringa_lee

    ringa_lee2017-04-18 09:08:09

    Tentukan baris gilir Aktiviti, tambahkan setiap aktiviti apabila ia dibuat dan sediakan kaedah statik untuk menyelesaikan semua aktiviti dalam baris gilir

    balas
    0
  • Batalbalas