我可以通过设置 PendingIntent 并使用 setLastestEventInfo() 来获取通知来调用活动。如果我想调用特定片段怎么办?我可以覆盖的任何方法吗?据我所知,片段不能直接使用意图,但需要由活动托管。
答案 0 :(得分:2)
您可以将片段的完整类名称(MyFragment.class.getName()
)作为额外的Intent传递。然后,有一个托管活动接收意图,并显示给出的片段作为额外的,如下所示:
public static final String FRAGMENT_CLASS = "fragment_class";
public void onCreate(Bundle savedState) {
Intent i = getIntent();
String fragmentClass = i.getStringExtra(FRAGMENT_CLASS);
if (!TextUtils.isEmpty(fragmentClass)) {
Fragment toDisplay = Fragment.instantiate(this, fragmentClass);
getSupportFragmentManager()
.beginTransaction()
.add(R.id.my_root_container, toDisplay, null)
.commit();
}
}