我有一个涉及声音池的应用程序 - 在应用程序启动时加载所有声音,然后加载主屏幕。
现在,我想检查应用程序是否正在运行——如果没有运行,我想重新加载应用程序——如果它正在运行,我不想重新加载应用程序。
为此,我尝试了以下方法:
ActivityManager activityManager = (ActivityManager) this.getSystemService( ACTIVITY_SERVICE );
List<RunningAppProcessInfo> procInfos = activityManager.getRunningAppProcesses();
for(int i = 0; i < procInfos.size(); i++){
if(procInfos.get(i).processName.equals("com.me.checkprocess"))
{
Log.e("Result", "App is running - Doesn't need to reload");
}
else
{
Log.e("Result", "App is not running - Needs to reload);
}
}
这可以完美地给出结果,但会继续检查直到 procInfos.size 小于 0。直到应用程序获取进程 com.me.checkprocess 为真 - 它总是错误的?所以它总是首先进入 else 部分。
例如:如果总进程是 30。而我的进程 com.me.checkprocess 正在运行@29th。执行条件时。直到第 28 个进程它是 else 并且 @29th 进程它进入条件为真。
如何修复这部分 - 我只想在检查整个过程后才能进入其他部分?
让我知道!