【问题标题】:Android application install/uninstall eventAndroid 应用程序安装/卸载事件
【发布时间】:2012-12-26 22:45:21
【问题描述】:

有一个应用程序,安装后需要重新启动系统。我注册了引导接收器并将信息写入系统日志。并检查这条线的活动。效果很好,但是有一个问题……

当用户在一个会话中卸载并安装此应用程序时(我的意思是用户不重新启动手机)系统日志仍然有“手机重新启动”行并且应用程序运行时出现错误。

据我所知,我无法检查应用程序上的卸载事件,因为接收器在应用程序卸载之前停止。所以我的问题是我可以检查我的应用程序安装吗?或者可能以任何其他方式卸载?

谢谢!

【问题讨论】:

  • 你有更大的问题。在用户运行您的一项活动之前,您的“启动接收器”将无法工作,从 Android 3.1 开始。您需要重写您的应用程序,使其不需要“安装后重新启动”才能成功运行。
  • @CommonsWare,谢谢。是的,我现在只在 2.x 版本上测试过它。我将重写该函数以使用另一个检查重新启动。但是这个应用程序在没有系统重启的情况下无法运行,所以我仍然需要一些问题......
  • “但是这个应用程序在没有系统重启的情况下无法运行”——这是你的应用程序中需要修复的错误。无论如何,并不是每个用户都会听你的话并重新启动他们的手机。
  • 嗯,这是用户的权利,他可以删除应用程序)它需要连接到系统服务。无论如何,我刚刚通过再次检查找到了解决方案!!! UninstallAppProgress 提供的“已完成卸载 pkg ...”行的系统日志
  • 您的方法不适用于 Android 4.1 及更高版本,因为您无法再读取除您自己编写的日志消息之外的日志消息。

标签: android installation uninstallation


【解决方案1】:

也许有人会感兴趣。我找到了允许我在安装/更新后检查系统重启的代码:

public static boolean phone_rebooted(Context ctx) {
        ApplicationInfo appInfo = ctx.getApplicationInfo();
        String appFile = appInfo.sourceDir;
        long installed = new File(appFile).lastModified();

        long boot_time = System.currentTimeMillis() - SystemClock.elapsedRealtime();
        if(boot_time < installed) {
           return false;
        } else {
           return true;
        }
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-29
    • 2011-02-21
    • 1970-01-01
    • 2019-12-13
    • 2014-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多