Nachdem Sie die neue Version der Android-App installiert haben, starten Sie die App neu.

1. Laden Sie den Code direkt hoch. Wenn Ihre App eine neue Version installiert, sendet das System drei Broadcasts. Wir müssen die Übertragung nur im Android-Programm registrieren und angeben, dass die Übertragung (android.intent.action.PACKAGE_REPLACED) nach Abschluss der Aktualisierungsanwendung empfangen werden soll. Nach dem Empfang der Übertragung können Sie die App neu starten

/*android.intent.action.PACKAGE_REMOVED 卸载应用完成后收到
    android.intent.action.PACKAGE_ADDED 安装应用完成后收到
    android.intent.action.PACKAGE_REPLACED 更新应用完成后收到,
    在此之前后先收到前两个广播(PACKAGE_REMOVED 然后是 PACKAGE_ADDED 最后是 PACKAGE_REPLACED )*/
    class UninstallReceiver extends BroadcastReceiver {
    
    
        @Override
        public void onReceive(Context context, Intent intent) {
    
    
            if (intent.getAction().equals("android.intent.action.PACKAGE_REMOVED")) {
    
    
              //这里做重新启动app
              ActivityManager manager = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE);
            manager.restartPackage("com.example.test");
        }
    }

2. Statische Registrierungsübertragung, Sie können auch die Code-Registrierungsübertragung auswählen

//在AndroidManifest.xml中定义如下
        <receiver android:name=".UninstallReceiver">
            <intent-filter>
                <action android:name="android.intent.action.SCREEN_ON" />
                <action android:name="android.intent.action.BOOT_COMPLETED" />
                <action android:name="android.intent.action.ACTION_PACKAGE_ADDED" />
                <action android:name="android.intent.action.ACTION_PACKAGE_REPLACED" />
                <action android:name="android.intent.action.ACTION_PACKAGE_REMOVED" />
            </intent-filter>
        </receiver>

3. Übertragung der Coderegistrierung

//注册广播
IntentFilter intentFilter = new IntentFilter();
        UninstallReceiver uninstallReceiver = new UninstallReceiver();
        intentFilter.addAction(Intent.SCREEN_ON);
        intentFilter.addAction(Intent.BOOT_COMPLETED);
        intentFilter.addAction(Intent.ACTION_PACKAGE_ADDED);
        intentFilter.addAction(Intent.ACTION_PACKAGE_REPLACED);
        intentFilter.addAction(Intent.ACTION_PACKAGE_REMOVED);
        intentFilter.addDataScheme("package");
        registerReceiver(uninstallReceiver, intentFilter);

4. Sie können auch auf diesen Artikel verweisen

https://blog.csdn.net/u012346890/article/details/111516870

Supongo que te gusta

Origin blog.csdn.net/qq_36570506/article/details/131695013
Recomendado
Clasificación