多进程导致Application多次启动
2017-08-16 10:36
204 查看
前几天碰到一个问题,application多次启动,开始并不清楚是什么原因,后来看到在我们自己的插件里也有一个进程启动了这个application
所以我的application多次启动是因为多进程
那我们如何来避免这个问题呢
判断是否当前程序主进程
因为我在application中做了启动服务的操作 如果applicaiton多次启动 那服务就启动两次为了避免重复启动所以在这里我的用法是判断是否主进程再进行启动服务
所以我的application多次启动是因为多进程
那我们如何来避免这个问题呢
判断是否当前程序主进程
private boolean isMain() { int pid = android.os.Process.myPid(); String processName = ""; ActivityManager mActivityManager = (ActivityManager) this.getSystemService(Context.ACTIVITY_SERVICE); for (ActivityManager.RunningAppProcessInfo appProcess : mActivityManager.getRunningAppProcesses()) { if (appProcess.pid == pid) { processName = appProcess.processName; break; } } String packageName = this.getPackageName(); if (processName.equals(packageName)) { return true; } return false; }
因为我在application中做了启动服务的操作 如果applicaiton多次启动 那服务就启动两次为了避免重复启动所以在这里我的用法是判断是否主进程再进行启动服务
if (isMain()) { startService(new Intent(this, GameBoostService.class)); }
相关文章推荐
- 多进程导致Application中onCreate执行多次
- 多进程导致 Application 多次执行的问题研究
- 由于启动用户实例的进程时出错,导致无法生成 SQL Server 的用户实例。该连接将关闭。
- 由于启动用户实例的进程时出错,导致无法生成 SQL Server 的用户实例
- hadoop多次格式化后,导致datanode启动不了
- 由于启动用户实例的进程时出错,导致无法生成 SQL Server 的用户实例,该连接将关闭的解决办法
- [Oracle 11g r2(11.2.0.4.0)]案例分析4-由gipc 进程导致的节点无法启动
- Visual Studio启动、附加进程调试,多个Web Application时启动多个WebServer关闭方法
- Hadoop多次格式化导致datanode无法启动
- NT KERNEL & SYSTEM 进程占用 80 端口导致 Nginx 启动失败
- hadoop多次格式化后,导致datanode启动不了
- 由于启动用户实例的进程时出错,导致无法生成 SQL Server 的用户实例。该连接将关闭。
- SQLServer2005 Express问题:由于启动用户实例的进程时出错,导致无法生成 SQL Server 的用户实例。该连接将关闭。
- SogouCloud.exe进程导致SQL Server服务无法启动
- 防止一个进程被多次启动
- Win10下 Redis启动 错误1067导致进程意外终止的解决方法
- hadoop多次格式化后,导致datanode启动不了
- hadoop出现Incompatible namespaceIDs 的错误,导致namenode进程启动不了
- 由于启动用户实例的进程时出错,导致无法生成 SQL
- Tomcat启动时Host标签和Context标签的处理导致程序部署多次