Application被多個程序多次建立問題
阿新 • • 發佈:2018-12-13
在Android中,Application類中我們通常會將一些應用初始化程式碼放在這裡,
當同一個應用包含多個程序時,Application會被建立多次,
導致初始化程式碼被重複執行,這樣會導致一些意想不到的問題。
如果只讓預設的程序在建立Application時執行初始化程式碼,就可以解決這種問題。下面貼上程式碼
在Android中,Application類中我們通常會將一些應用初始化程式碼放在這裡, 當同一個應用包含多個程序時,Application會被建立多次,導致初始化程式碼被重複執行,這樣會導致一些意想不到的問題。 如果只讓預設的程序在建立Application時執行初始化程式碼,就可以解決這種問題。下面貼上程式碼 public class App extends Application { @Override public void onCreate() { super.onCreate(); // other process will create app instance. if (!getPackageName().equals( getProcessName(getApplicationContext(), android.os.Process.myPid()))) { return; } // initialize code } @Nullable public String getProcessName(Context cxt, int pid) { ActivityManager am = (ActivityManager) cxt.getSystemService(Context.ACTIVITY_SERVICE); if (am == null) { return null; } List<ActivityManager.RunningAppProcessInfo> runningApps = am.getRunningAppProcesses(); if (runningApps != null && !runningApps.isEmpty()) { for (ActivityManager.RunningAppProcessInfo procInfo : runningApps) { if (procInfo.pid == pid) { return procInfo.processName; } } } return null; } }