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

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

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

谢谢大神们 !

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

Antworte allen (4)
洪涛

可以自己下一个队列去控制所有Activity,代码如下:

public class ActivityUtils { private static List 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(); } } } }

在你的BaseActivity中的onCreate方法中添加:

ActivityUtils.addActivity(this);

然后在你需要的地方调用

ActivityUtils.finishAllActivity();

希望对你有帮助

    左手右手慢动作

    Application里面监听打开的Activity,点击按钮后杀死所有Activity

    application.registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {}
      左手右手慢动作

      看来没人回答,我就贴上自己的解决方法吧。
      还是不知道怎样才能完全退出APP,我就先把activity栈清空,然后杀掉进程。

      ActivityManager activityMgr= (ActivityManager)this.getSystemService(ACTIVITY_SERVICE); activityMgr.killBackgroundProcesses(getPackageName()); android.os.Process.killProcess(android.os.Process.myPid()); System.exit(0);
        左手右手慢动作

        定义一个Activity队列,每个活动创建的时候添加进去,提供一个静态方法,finish队列里的所有活动

          Neueste Downloads
          Mehr>
          Web-Effekte
          Quellcode der Website
          Website-Materialien
          Frontend-Vorlage
          Über uns Haftungsausschluss Sitemap
          Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!