0
我有三個視圖和一個活動。 MainActivity - MainController - PushedController - NotificationOpenController。如何處理Kotlin和Conductor的意圖
MainController包含一個按鈕,當按下時會做一些黑盒子東西,設備會在通知托盤中收到通知。
當單擊該通知,我想要的行爲是彷彿
router.pushController(RouterTransaction.with(NotificationOpenController(bundle))
.pushChangeHandler(VerticalChangeHandler())
.popChangeHandler(VerticalChangeHandler()))
就這樣發生了。
任何科特林相關的提示或修訂的讚賞,因爲我這樣做是爲了學習語言
我不確定如何以適當的方式,通過意圖實現這一點,也許廣播?但經過一些試驗和錯誤,現在我的代碼看起來是這樣的:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
App.graph.inject(this)
setContentView(R.layout.activity_main_kotlin)
Log.d(TAG,"${FirebaseInstanceId.getInstance().getToken()}")
router = Conductor.attachRouter(this, controller_container, savedInstanceState)
val startingIntent : Intent? = intent
if(startingIntent?.extras != null){
transitionToNotificationOpenController(startingIntent?.extras)
}
else{
if (!router.hasRootController()) {
router.setRoot(RouterTransaction.with(MainController()));
}
}
}
override fun onBackPressed() {
if (!router.handleBack()) {
super.onBackPressed()
}
}
fun transitionToNotificationOpenController(bundl: Bundle?){
router.pushController(RouterTransaction.with(NotificationOpenController(bundl))
.pushChangeHandler(VerticalChangeHandler())
.popChangeHandler(VerticalChangeHandler()))
}
通知目的是建立這樣
val builder = NotificationCompat.Builder(this).setContentTitle("Title").setContentText("Text")
val notificationIntent = Intent(this, MainActivity::class.java)
notificationIntent.putExtra("message",messageBody)
val contentIntent = PendingIntent.getActivity(this, 0, notificationIntent,
PendingIntent.FLAG_UPDATE_CURRENT)
...
manager.notify(1,builder.build())
但是,使用這種方法的動畫得到所有錯誤的,用戶只能請參閱「典型」 - 在加載一些或啓動新活動後彈出視圖 - ,因爲按下通知時有一個活動繼續,然後是按下後退按鈕後的活動暫停 - >活動恢復。