如何访问parentActivityName中定义的Activity类

时间:2016-04-13 14:32:48

标签: android

对于每个具有逻辑父级的活动,我们在Manifest中定义父Activity,如下所示:

<activity
        android:name=".ui.activity.MyActivity"
        android:label="@string/activity_title"
        android:parentActivityName=".ui.activity.ParentActivity"
        android:theme="@style/My.Theme" >
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value=".ui.activity.ParentActivity" />
</activity>

有没有办法访问MyActivity中@parentActivityNamemeta-data@value中引用的类? (请注意,我不想访问父Activity实例,只需要访问Class)

原因是出于跟踪目的,我们希望为每个Activity生成类似路径的字符串。在这种情况下,这个字符串将是/parent_activity/my_activity - 并且由于层次结构已经在清单中定义,最好的情况是在那里访问它然后定义它两次。

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

也许它会帮助你NavUtils.getParentActivityName(childActivityInstance)

答案 1 :(得分:0)

您可以随时使用简单的方法:在ParentActivity

中将父活动名称作为字符串传递给intent extras
Intent intent = new Intent(ParentActivity.this, ChildActivity.class);
intent.putExtra("parent_activity_name", "ParentActivity");
...
startActivity(intent);

然后在ChildActivity活动中获取它

 Intent intent = getIntent();
 String parentName = intent.getStringExtra("parent_activity_name");

不确定是否还有其他更优雅的解决方案。