2013-03-14 61 views
2

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

回答

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; 

componentInfo.getPackageName(); 您将需要下列权限上您的清单:

使用许可权的android:NAME =“android.permission.GET_TASKS”

+0

那是什么,我现在干什么。我需要一个答案,我如何在运行时得到选择器的活动名称... – LincyTonita 2013-03-14 11:08:01

+0

我添加了如何得到它..试试.. – 2013-03-15 05:55:47