我正在尝试在子活动中发出通知,一旦单击该活动,它将重新打开后台活动(如果存在),否则将返回到父活动。 父活动期望子活动(startActivityForResult)产生结果,所以我不能使用launchMode singleTop或类似的东西。
我需要这个,因为子活动具有不可中断的开放连接。 该连接保留在此子活动的片段中,其中keepInstance设置为true:
connectionFragment = fm.findFragmentByTag(TAG_CONNECTION_FRAGMENT) as ConnectionFragment?
if (connectionFragment == null) {
connectionFragment = ConnectionFragment.newInstance()
fm.beginTransaction().add(connectionFragment, TAG_CONNECTION_FRAGMENT).commit()
}
我已经测试了许多解决方案,但是现在这是我要传递给NotificationBuilder setContentIntent的待定意图:
PendingIntent.getActivity(
this,
0,
Intent(this, ChildActivity::class.java)
.setAction(Intent.ACTION_VIEW)
.addCategory(Intent.CATEGORY_DEFAULT)
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT)
.putExtra("notification", true),
0)
如您所见,我将额外设置“通知”,因此,在调用onCreate时,我可以检测到是否重新创建了活动(当findFragmentByTag返回null时)并返回到父活动。
如果没有选择在后台重新打开正在运行的活动,我愿意寻找解决此问题的方法。