MyApplication ruft automatisch die onCreate-Funktion auf, nachdem die App mit Code beendet wurde (gelöst)

Inhaltsverzeichnis

Problem gefunden

Exit-Code-Methode 1

Exit-Code-Methode 2

Anwendungslebenszyklus 

Das Problem lösen

Zusammenfassen


Problem gefunden

Haben Sie während des Tests festgestellt, dass die angepasste MyApplication nach einigen Sekunden automatisch die Funktion onCreate() aufruft, wenn Sie die App über Code beenden?

Exit-Code-Methode 1

 public static void appExit(Context context) {
            MyApplication.getInstance().stopOperateOrderService();
            ActivityManager manager = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE); //获取应用程序管理器
            manager.killBackgroundProcesses(context.getPackageName());
            int pid = android.os.Process.myPid();//获取当前应用程序的PID
            android.os.Process.killProcess(pid);//杀死当前进程
}

Exit-Code-Methode 2

 public static void appExit(Context context) {
        try {
            StackManager.finishAllActivity();
            ActivityManager manager = (ActivityManager) context
                    .getSystemService(Context.ACTIVITY_SERVICE);
            manager.killBackgroundProcesses(context.getPackageName());
            System.exit(0);
        } catch (Exception e) {
            e.printStackTrace();
        }
}

Anwendungslebenszyklus 

public class MyApp extends Application {

    @Override
    public void onCreate() {
        // 程序创建的时候执行
        Log.d(TAG, "onCreate");
        super.onCreate();
    }

    @Override
    public void onTerminate() {
        // 程序终止的时候执行
        Log.d(TAG, "onTerminate");
        super.onTerminate();
    }

    @Override
    public void onLowMemory() {
        // 低内存的时候执行
        Log.d(TAG, "onLowMemory");
        super.onLowMemory();
    }

    @Override
    public void onTrimMemory(int level) {
        // 程序在内存清理的时候执行
        Log.d(TAG, "onTrimMemory");
        super.onTrimMemory(level);
    }

    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        //新的设备配置信息
        Log.d(TAG, "onConfigurationChanged");
        super.onConfigurationChanged(newConfig);
    }

}

Das Problem lösen

Es stellte sich heraus, dass es durch einen Dienst in der App verursacht wurde, der nicht geschlossen wurde. Schließen Sie zunächst alle Hintergrunddienste in der App und beenden Sie dann den App-Prozess.

Auf diese Weise ruft MyApplication die Funktion onCreate() nicht auf, nachdem die App beendet wurde.

Zusammenfassen

Die Entwicklung erfordert mehr Tests, um Probleme zu erkennen, und Erfahrung ist das Wichtigste.

Nur zuzusehen und zu tippen ist nutzlos
Nach dem Lesen müssen Sie es üben
Sie müssen den Code eingeben
Machen Sie unbedingt Versuch und Irrtum.
Das ist sinnvolles Lernen

Guess you like

Origin blog.csdn.net/piyangbo/article/details/126544169