经常遇到这种情况,app收到新消息,如果app不在前台,则在手机通知栏发送一个通知提醒。那么,如何判断app是否处于前台
检验当前app是否运行于前台,而没有被最小化,上网查了一下解决方案,看到一段代码是可以实现的:
public boolean isRunningForeground(Context context){
ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
ComponentName cn = am.getRunningTasks(1).get(0).topActivity;
String currentPackageName = cn.getPackageName();
if(currentPackageName != null && currentPackageName.equals(getPackageName())){
return true;
}
return false;
}
自己也使用一个小技巧实现了检验app是否运行于前台,不用使用其他特殊的api,主要是使用activity的生命周期回调方法。首先在自己定义的application类中定义一个变量,表示app是否处于前台
public class App extends Application{
private boolean ifAppear;
//the App disappear into background
public void appDisappear(){
ifAppear = true;