2

在我的应用程序中,我正在检查后台服务中的顶级活动名称,并在默认情况下如果顶级活动不是 android 中的选择器活动,则调用一个函数。我发现该活动名称为“ com.android.internal.app.ChooserActivity ”。所以我正在对其进行硬编码并进行检查。一切正常。但是当该活动名称更改时会发生什么(由谷歌更改)。所以我的问题是,有没有办法在运行时获取选择器活动?

4

1 回答 1

0

在您的后台服务中运行一个线程,通过 ApplicationManager 获取活动的顶部,然后您可以在运行时比较活动的顶部。

ActivityManager am = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);



 // get the info from the currently running task
 List< ActivityManager.RunningTaskInfo > taskInfo = am.getRunningTasks(1); 

 Log.d("topActivity", "CURRENT Activity ::"
         + taskInfo.get(0).topActivity.getClassName());

 ComponentName componentInfo = taskInfo.get(0).topActivity;

组件信息.getPackageName(); 您的清单需要以下权限:

使用权限 android:name="android.permission.GET_TASKS"

于 2013-03-14T09:53:27.040 回答