Inhaltsverzeichnis
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