0

アプリケーションがあり、インストール後にシステムの再起動が必要です。ブート レシーバーを登録し、システム ログに情報を書き込みました。そして、この行のアクティビティ チェック。動作は問題ないのですが、一つ問題が…

ユーザーがこのアプリを 1 つのセッションでアンインストールしてインストールすると (ユーザーが電話を再起動しないことを意味します)、システム ログに「電話が再起動されました」という行がまだあり、アプリケーションがエラーで実行されます。

私が知っているように、アプリでアンインストールイベントを確認できないため、アプリケーションがアンインストールされる前にレシーバーが停止します。私の質問は、アプリのインストールを確認できますか? それとも他の方法でアンインストールしますか?

ありがとう!

4

1 に答える 1

0

多分誰かが興味を持ってくれるでしょう。インストール/更新後にシステムの再起動を確認できるコードを見つけました。

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;
        }
    }
于 2013-02-03T13:00:24.413 に答える