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