android application方法执行两次

是由于进程引起的

 <service
       
            android:process=":remote">
      
        </service>

导致了application的多次创建。
解决办法:判断当前进程,选择不同的进程做对应的初始化操作即可。

    /**
     * 获取当前进程名
     */
    private String getCurrentProcessName() {
        int pid = android.os.Process.myPid();
        String processName = "";
        ActivityManager manager = (ActivityManager) getApplicationContext().getSystemService
                (Context.ACTIVITY_SERVICE);
        for (ActivityManager.RunningAppProcessInfo process : manager.getRunningAppProcesses()) {
            if (process.pid == pid) {
                processName = process.processName;
            }
        }
        return processName;
    }

 解决方案,在自定义application中最前面OnCreate中判断

  @Override
    public void onCreate() {
        super.onCreate();
        if (!getPackageName().equals(getCurrentProcessName())) {
            return;
        }
       //其他代码
}
发布了2022 篇原创文章 · 获赞 536 · 访问量 273万+

猜你喜欢

转载自blog.csdn.net/mp624183768/article/details/104757525