我有一个以这种方式构建的应用程序:
活动A:登录活动B:ListView
我配置了GCM,一切都很好。但是现在我想只在App没有运行时启动Activity A,如果app正在运行,我想调用Activity B中的方法,刷新Activity B中的ListView。我怎样才能知道App或Activity B是否是运行
感谢。
答案 0 :(得分:1)
好的,您只需使用sharedPreferences
即可当您的应用在onCreate方法中运行时,请调用此方法:
PreferenceManager.getDefaultSharedPreferences(this).edit().putBoolean("running",true).apply();
当你的应用被销毁时,你的onStop或onDestroy方法
称之为
PreferenceManager.getDefaultSharedPreferences(getActivity()).edit().putBoolean("running",false).apply();
现在您可以检查您的应用是否正在运行,这意味着如果运行变量是真或假,这样:
boolean run = PreferenceManager.getDefaultSharedPreferences(this).getBoolean("running",false);
修改
检查SharedPrefs值的服务
public class CheckService extends Service {
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
//TODO do something useful
return Service.START_STICKY;
}
@Override
public IBinder onBind(Intent intent) {
//TODO for communication return IBinder implementation
return null;
}
@Override
public void onCreate() {
super.onCreate();
boolean run = PreferenceManager.getDefaultSharedPreferences(this).getBoolean("running",false);
if(run) {
// do what you want if the app is running
//run actualize in your case
}
else {
//do whatever you want again if it's not
}
}
@Override
public void onDestroy() {
super.onDestroy();
Log.i(TAG, "Service destroying");
}
}