我需要实现逻辑 - 如果用户正在进行聊天 Activity ,那么我不需要显示带有新消息的推送通知。所以我需要知道屏幕上有什么 Activity 。为此,我找到了这个答案 How to get current foreground activity context in android?但是我不懂怎么用
public void registerActivityLifecycleCallbacks (Application.ActivityLifecycleCallbacks callback)
谁能给我一个完整的例子,说明如何发现屏幕上有什么 Activity ?
最佳答案
您必须实现 onActivityPaused
和 onActivityResumed()
public class YourApplication extends Application implements
Application.ActivityLifecycleCallbacks {
public static boolean isChatVisible=false;
public void onCreate() {
super.onCreate();
registerActivityLifecycleCallbacks(this);
}
@Override
public void onActivityCreated(Activity p0, Bundle p1) {
}
@Override
public void onActivityStarted(Activity p0) {
}
@Override
public void onActivityResumed(Activity p0) {
isChatVisible=p0 instanceof ChatActivity;
}
@Override
public void onActivityPaused(Activity p0) {
}
@Override
public void onActivityStopped(Activity p0) {
}
}
在构建通知之前,只需检查 YourApplication.isChatVisible()
关于android - 如何发现 Android 应用程序中前台的 Activity?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57676159/