前言
如果一个apk中在设置多进程,也就是在AndroidManifest.xml中,通过android:process属性配置。
<activity android:name=".OneActivity" android:exported="true" android:launchMode="singleInstance"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".Twoctivity" android:exported="true" android:launchMode="singleInstance" android:process=":another_process"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
配置下面属性,表示OneActivity和Twoctivity在不同的进程中。
android:process=":another_process"
配置后,重写Application就会执行两次onCreate()并重新初始化了,但我不需要初始化两次。
正文
解决方法,就是对进程包名判断,下面是我测试通过的一种。
代码片段
在Application中
@Override public void onCreate() { super.onCreate(); if (TextUtils.equals(getCurrentProcessName(this), getPackageName())) { //做初始化操作 } }
private String getCurrentProcessName(Context context) { int myPid = android.os.Process.myPid(); ActivityManager mActivityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); for (ActivityManager.RunningAppProcessInfo runningAppProcessInfo : mActivityManager.getRunningAppProcesses()) { if (runningAppProcessInfo.pid == myPid) { return runningAppProcessInfo.processName; } } return null; }
日志打印
调试中特意打印了包名
#第一次 getPackageName() : com.biumall.media getCurrentProcessName() : com.biumall.media #第二次 getPackageName() : com.biumall.media getCurrentProcessName() : com.biumall.media:another_process
我们的初始化是getPackageName()和getCurrentProcessName()获取的是一样时
参考文章
-
《
历史上的今天
暂无评论...
随机推荐
个人常用的GridView方法简介
前言Android中GridView还是比较常用的,GridView有些方法或者配置属性都是比较常用也比较容易忘记的。因此,今天抽空整(抄)理(袭)一下,以便查阅。PS: 现在RecyclerView比较多了正文GridView跟ListView有很多一样的属性或者方法。因此这里就更简...
[代码片段]Android像素转换工具类
前言移动项目需要根据设备进行适配,这个还是很有用的,摘抄于此,方便自己查阅。正文public class DensityUtil { public static int dip2px(float dpValue) { return (int) (dpValue * R...
Seekbar的一些总结
前言seekbar是很常见的,也用的比较多,今天就整理一些seekbar相关的知识。老生常谈,会的就跳过吧,这里只是简单的记录而已。正文如果不改变seekbar的progressDrawable和thumb,也就是用APP的主题样式,一般情况比较丑或者跟设计不符合,基本上都需要改动。我们...
Android之获取图片高宽方法的简单记录
前言本文非原创,大佬的基础上进行修改和调试,下面三种方式我都测试过。感谢大佬们分享。好记性不如烂笔头总结如果只获取高宽,推荐使用BitmapFactory.Options如果要加载图片和获取高宽,推荐使用Glide如果只是加载jpg图片,可以考虑ExifInterface,否则不推荐...
Android在线源码查看
前言记录一下在线看源码的几个地方,方便自己查阅。本文摘抄的。正文aospxref网址:http://aospxref.com/优点:更新速度快缺点:历史版本较少androidxref网址:http://androidxref.com/优点:历史版本较多缺...
Android View Binding的使用简介
前言简单记录一下,方便自己查阅。好记性不如烂笔头正文PS: 本文内容大都摘抄,感谢什么是View BindingView Binding是Android Studio 3.6推出的新特性,目的是为了替代findViewById(内部实现还是使用findViewById)。在启动视图绑...