我要为我的应用程序运行一些初始化代码,但是有两个进程,一个是我的主进程,另一个是保持活动进程。现在应用OnCreate()将运行两次,我只是想在我的主进程中运行一次初始化代码。我知道有一种方法,我可以ActivityManager获得运行的进程信息,通过比较pid知道当前进程信息,如下面的代码:
public static String getProcessNameByPID(Context context, int pid){
ActivityManager manager
= (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
for(ActivityManager.RunningAppProcessInfo processInfo : manager.getRunningAppProcesses()){
if(processInfo.pid == pid){
return processInfo.processName;
}
}
return "";
}
但是现在Android 5.0+杀死了getRunningTasks(int)和getRunningAppProcesses(),还有其他的想法吗?
检查是否声明了全局变量
private String globalString;
private int globalInt;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
if (globalString == nil)
{
globalString = "Declaration";
globalInt = 42;
//Everything else
}
}
private boolean firstTime= true;
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
if (firstTime) {
//Code to run first time
}
}
我曾经第一次运行代码