dynamic获取活动名称 – android

我希望获得当前Activity的名称在HttpRequest的URI中发送。 有没有办法做到这一点,而不是特指Activity

我知道我可以做myActivity.class.toString()但这是一个硬编码“myActivity”,因为我正在对我的Activity进行静态引用的效率较低的方式。 有没有一个更通用的方法来做到这一点使用像这样的东西(这btw实际上并没有在这里工作,因为它返回比所需的更多的信息)。

使用this.getClass().getSimpleName()获取活动的名称。

从注释中,如果您处于OnClickListener (或其他内部类)的上下文中,请手动指定该类:

MainActivity.class.getSimpleName()

对于那些不想使用reflection的纯粹主义者来说,另一种方法是使用PackageManager ,如下所示:

 PackageManager packageManager = activity.getPackageManager(); try { ActivityInfo info = packageManager.getActivityInfo(activity.getComponentName(), 0); Log.e("app", "Activity name:" + info.name); } catch (NameNotFoundException e) { e.printStackTrace(); } 

然而,这看起来像很多工作只是为了getClass().getName() (甚至不是getSimpleName() )。 但是我想这对于那些希望获得更多关于活动的信息的人来说可能是有用的,而不仅仅是类名。

 ActivityManager am = (ActivityManager)context.getSystemService(ACTIVITY_SERVICE); List< ActivityManager.RunningTaskInfo > taskInfo = am.getRunningTasks(1); this.currentActivity = taskInfo.get(0).topActivity.getClassName(); Log.i( "CURRENT Activity ", currentActivity); 

使用一个简单的方法

 getLocalClassName().toString 

这会给你你class上的名字