【发布时间】:2019-02-08 20:23:38
【问题描述】:
我的应用有一个静态快捷方式,我正在使用导航架构组件。
我正在使用以下实现,但它不适用于 Android 9。
在我的 MainActivity 中:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
setupToolbar()
setupNavigationDrawer()
checkPermissions()
if (intent.action == MoneyBook.SHORTCUT_ACTION_ADD_BOOKENTRY) {
findNavController(R.id.nav_host_fragment).popBackStack(R.id.action_entriesFragment_to_newBookEntryFragment, false)
}
}
快捷方式.xml:
<shortcuts xmlns:android="http://schemas.android.com/apk/res/android">
<shortcut
android:enabled="true"
android:icon="@drawable/ic_shortcut_addbookentry"
android:shortcutId="shortcut_addbookentry"
android:shortcutLongLabel="@string/shortcut_addbookentry_label_short"
android:shortcutShortLabel="@string/shortcut_addbookentry_label_short">
<intent
android:action="at.guger.moneybook.action.ADD_BOOKENTRY"
android:targetClass="at.guger.moneybook.activity.MainActivity"
android:targetPackage="at.guger.moneybook.dev" />
</shortcut>
</shortcuts>
在调试应用时,我注意到调用了findNavController(...) 方法,但屏幕上没有任何反应。
此外,我不会覆盖 onStart(...) 或 onResume(...)。
有没有给定的方法来实现带有导航组件的应用快捷方式,或者我在这里做错了什么?
【问题讨论】:
-
您预计会发生什么?
popBackStack()回去 - 你的意思是打电话给navigate()吗?
标签: android kotlin android-architecture-components android-jetpack android-appshortcut