Java 如果用户正在使用应用程序,那么如何停止显示通知?
我正在设计一款使用通知的android应用程序。Java 如果用户正在使用应用程序,那么如何停止显示通知?,java,android,android-notifications,Java,Android,Android Notifications,我正在设计一款使用通知的android应用程序。 在此之前,我使用的是全屏活动,因此如果在全屏视图中收到通知,我不会收到任何警报。 现在我正在使用启用通知的空白活动。 当我已经在应用程序(如skype)中时,我不想显示通知。 否则,我想在闪烁后立即取消它们。 如何做到这一点 提前感谢。您可以为所有活动定义一个超类,并跟踪应用程序的状态。如果所有活动都处于停止状态-应用程序在后台,否则-在前台。在超级活动的onStart()和onStop()方法中,您可以增加和减少可见活动的数量 public c
在此之前,我使用的是全屏活动,因此如果在全屏视图中收到通知,我不会收到任何警报。
现在我正在使用启用通知的空白活动。
当我已经在应用程序(如skype)中时,我不想显示通知。
否则,我想在闪烁后立即取消它们。
如何做到这一点
提前感谢。您可以为所有活动定义一个超类,并跟踪应用程序的状态。如果所有活动都处于停止状态-应用程序在后台,否则-在前台。在超级活动的
onStart()
和onStop()
方法中,您可以增加和减少可见活动的数量
public class SuperActivity extends Activity {
private static int sVisibleActivitiesCount;
@Override
public void onStart(){
super.onStart();
sVisibleActivitiesCount++;
}
@Override
public void onStop(){
super.onStart();
sVisibleActivitiesCount--;
}
public static boolean isAppInForeground() {
return sVisibleActivitiesCount > 0;
}
}
现在,如果superactive.isappingforeground
返回true,您可以在某处检查应用程序状态,而不创建通知
第二种方法是使用(MINAPI14)来监视活动生命周期,并在单个位置跟踪应用程序状态,而不必为所有活动创建一个超类。因此,如果你的应用程序有minSdkVersion=“14”,我宁愿使用这种方法。你可以为你的所有活动定义一个超类,并跟踪应用程序的状态。如果所有活动都处于停止状态-应用程序在后台,否则-在前台。在超级活动的
onStart()
和onStop()
方法中,您可以增加和减少可见活动的数量
public class SuperActivity extends Activity {
private static int sVisibleActivitiesCount;
@Override
public void onStart(){
super.onStart();
sVisibleActivitiesCount++;
}
@Override
public void onStop(){
super.onStart();
sVisibleActivitiesCount--;
}
public static boolean isAppInForeground() {
return sVisibleActivitiesCount > 0;
}
}
现在,如果superactive.isappingforeground
返回true,您可以在某处检查应用程序状态,而不创建通知
第二种方法是使用(MINAPI14)来监视活动生命周期,并在单个位置跟踪应用程序状态,而不必为所有活动创建一个超类。因此,如果你的应用程序有minSdkVersion=“14”,我宁愿使用这种方法。你可以为你的所有活动定义一个超类,并跟踪应用程序的状态。如果所有活动都处于停止状态-应用程序在后台,否则-在前台。在超级活动的
onStart()
和onStop()
方法中,您可以增加和减少可见活动的数量
public class SuperActivity extends Activity {
private static int sVisibleActivitiesCount;
@Override
public void onStart(){
super.onStart();
sVisibleActivitiesCount++;
}
@Override
public void onStop(){
super.onStart();
sVisibleActivitiesCount--;
}
public static boolean isAppInForeground() {
return sVisibleActivitiesCount > 0;
}
}
现在,如果superactive.isappingforeground
返回true,您可以在某处检查应用程序状态,而不创建通知
第二种方法是使用(MINAPI14)来监视活动生命周期,并在单个位置跟踪应用程序状态,而不必为所有活动创建一个超类。因此,如果你的应用程序有minSdkVersion=“14”,我宁愿使用这种方法。你可以为你的所有活动定义一个超类,并跟踪应用程序的状态。如果所有活动都处于停止状态-应用程序在后台,否则-在前台。在超级活动的
onStart()
和onStop()
方法中,您可以增加和减少可见活动的数量
public class SuperActivity extends Activity {
private static int sVisibleActivitiesCount;
@Override
public void onStart(){
super.onStart();
sVisibleActivitiesCount++;
}
@Override
public void onStop(){
super.onStart();
sVisibleActivitiesCount--;
}
public static boolean isAppInForeground() {
return sVisibleActivitiesCount > 0;
}
}
现在,如果superactive.isappingforeground
返回true,您可以在某处检查应用程序状态,而不创建通知
第二种方法是使用(MINAPI14)来监视活动生命周期,并在单个位置跟踪应用程序状态,而不必为所有活动创建一个超类。因此,如果你的应用程序有minSdkVersion=“14”,我宁愿使用这种方法。你可以尝试获取正在运行的进程列表,并检查前台的进程是否是你的应用程序
private boolean isAppInForeground() {
ActivityManager mActivityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
List<RunningAppProcessInfo> mRunningProcesses = mActivityManager
.getRunningAppProcesses();
Iterator<RunningAppProcessInfo> i = mRunningProcesses.iterator();
while (i.hasNext()) {
RunningAppProcessInfo runningAppProcessInfo = i.next();
if (runningAppProcessInfo.uid == getApplicationInfo().uid && runningAppProcessInfo.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND)
{
return true;
}
}
return false;
}
私有布尔值(){
ActivityManager MacActivityManager=(ActivityManager)getSystemService(Context.ACTIVITY_服务);
列表mrrunningprocesss=mActivityManager
.getRunningAppProcesses();
迭代器i=mrunningprocesss.Iterator();
while(i.hasNext()){
RunningAppProcessInfo RunningAppProcessInfo=i.next();
if(runningAppProcessInfo.uid==getApplicationInfo().uid&&runningAppProcessInfo.maintity==runningAppProcessInfo.maintity\u前台)
{
返回true;
}
}
返回false;
}
您可以尝试获取正在运行的进程列表,并检查前台的进程是否是您的应用程序
private boolean isAppInForeground() {
ActivityManager mActivityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
List<RunningAppProcessInfo> mRunningProcesses = mActivityManager
.getRunningAppProcesses();
Iterator<RunningAppProcessInfo> i = mRunningProcesses.iterator();
while (i.hasNext()) {
RunningAppProcessInfo runningAppProcessInfo = i.next();
if (runningAppProcessInfo.uid == getApplicationInfo().uid && runningAppProcessInfo.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND)
{
return true;
}
}
return false;
}
私有布尔值(){
ActivityManager MacActivityManager=(ActivityManager)getSystemService(Context.ACTIVITY_服务);
列表mrrunningprocesss=mActivityManager
.getRunningAppProcesses();
迭代器i=mrunningprocesss.Iterator();
while(i.hasNext()){
RunningAppProcessInfo RunningAppProcessInfo=i.next();
if(runningAppProcessInfo.uid==getApplicationInfo().uid&&runningAppProcessInfo.maintity==runningAppProcessInfo.maintity\u前台)
{
返回true;
}
}
返回false;
}
您可以尝试获取正在运行的进程列表,并检查前台的进程是否是您的应用程序
private boolean isAppInForeground() {
ActivityManager mActivityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
List<RunningAppProcessInfo> mRunningProcesses = mActivityManager
.getRunningAppProcesses();
Iterator<RunningAppProcessInfo> i = mRunningProcesses.iterator();
while (i.hasNext()) {
RunningAppProcessInfo runningAppProcessInfo = i.next();
if (runningAppProcessInfo.uid == getApplicationInfo().uid && runningAppProcessInfo.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND)
{
return true;
}
}
return false;
}
私有布尔值(){
ActivityManager MacActivityManager=(ActivityManager)getSystemService(Context.ACTIVITY_服务);
列表mrrunningprocesss=mActivityManager
.getRunningAppProcesses();
迭代器i=mrunningprocesss.Iterator();
while(i.hasNext()){
RunningAppProcessInfo RunningAppProcessInfo=i.next();
if(runningAppProcessInfo.uid==getApplicationInfo().uid&&runningAppProcessInfo.maintity==runningAppProcessInfo.maintity\u前台)
{
返回true;
}
}
返回false;
}
您可以尝试获取正在运行的进程列表,并检查前台的进程是否是您的应用程序
private boolean isAppInForeground() {
ActivityManager mActivityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
List<RunningAppProcessInfo> mRunningProcesses = mActivityManager
.getRunningAppProcesses();
Iterator<RunningAppProcessInfo> i = mRunningProcesses.iterator();
while (i.hasNext()) {
RunningAppProcessInfo runningAppProcessInfo = i.next();
if (runningAppProcessInfo.uid == getApplicationInfo().uid && runningAppProcessInfo.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND)
{
return true;
}
}
return false;
}
私有布尔值(){
ActivityManager MacActivityManager=(ActivityManager)getSystemService(Context.ACTIVITY_服务);
列表mrrunningprocesss=mActivityManager
.getRunningAppProcesses();
迭代器i=mrunningprocesss.Iterator();
而(i.h