获取最顶端的Top Activity和类名

匿名 (未验证) 提交于 2019-12-03 00:21:02

1.我找了很多方法,以下是


public String getTopActivityPackageName(Context context) {     String topActivityPackage = null;     ActivityManager activityManager = (ActivityManager) (context             .getSystemService(android.content.Context.ACTIVITY_SERVICE));     List<RunningTaskInfo> runningTaskInfos = activityManager             .getRunningTasks(1);     if (runningTaskInfos != null) {         ComponentName f = runningTaskInfos.get(0).topActivity;         topActivityPackage = f.getPackageName();     }     return topActivityPackage; }

到了断网,获取出来的就是launcher ,我去,我要的是我自己app的top acticity,这个拿到我没法用。

之后就是
之后

之后

就可以了 ,问题是 这个要跑到设置里面,用户自己设置,这个很烦的。


***********************************************我自己的方法了****************************************************************

在Application的onCreat中添加:

registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {     @Override     public void onActivityCreated(Activity activity, Bundle savedInstanceState) {     }      @Override     public void onActivityStarted(Activity activity) {      }      @Override     public void onActivityResumed(Activity activity) {         topActivity=activity.getClass().getName();     }      @Override     public void onActivityPaused(Activity activity) {      }      @Override     public void onActivityStopped(Activity activity) {      }      @Override     public void onActivitySaveInstanceState(Activity activity, Bundle outState) {      }      @Override     public void onActivityDestroyed(Activity activity) {     } });
我想要的是类名,因为 我的程序里面要判断是否是top activity,所以我这里是String,如果你是activity,你看到了,这里也是有activity的。
在application中添加方法:

public boolean isTopActivity(String TAG){     if(TextUtils.isEmpty(topActivity))         return false;     return topActivity.contains(TAG); }

大功告成。





标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!