从锁定屏幕打开通知的行为与从通知栏打开通知的行为不同

时间:2018-04-27 06:54:25

标签: android android-notifications

通过锁定屏幕打开通知时,我遇到了一个奇怪的问题。这是我的应用程序的结构

  • MainActivity - 应用的开放活动。
  • NotificationActivity - 用户点击通知时打开的活动。

以下是我创建通知的方式

val mBuilder = NotificationCompat.Builder(this)
            .setSmallIcon(R.drawable.notification_icon_background)
            .setContentTitle("Title")
            .setContentText("Content")
            .setPriority(NotificationCompat.PRIORITY_DEFAULT)

val targetIntent = Intent(this, NotificationActivity::class.java)
val pendingContentIntent = PendingIntent.getActivity(
            this, 10, targetIntent,
            PendingIntent.FLAG_CANCEL_CURRENT
        )
mBuilder.setContentIntent(pendingContentIntent)
val notificationManager = NotificationManagerCompat.from(this)
notificationManager.notify(id, mBuilder.build())

现在如果我在MainActivity并按下主页按钮,然后我锁定了我的设备。点击锁定屏幕上的通知后,NotificationActivity即会打开,但同时也会调用onResume() MainActivity方法。

以下是我使用命令

后取出的一些日志

adb logcat -b events

04-27 12:13:14.360  1445  8699 I am_focused_stack: [0,1,5,moveTaskToFront]
04-27 12:13:14.360  1445  8699 I wm_task_moved: [840,1,16]
04-27 12:13:14.364  1445  8699 I am_pause_activity: [0,224827670,com.android.systemui/.recents.RecentsActivity]
04-27 12:13:14.366  1445  8699 I am_task_to_front: [0,840]
04-27 12:13:14.386  3189  3189 I am_on_paused_called: [0,com.android.systemui.recents.RecentsActivity,handlePauseActivity]
04-27 12:13:14.388  1445  8699 I am_set_resumed_activity: [0,com.packagename/com.activity.MainActivity,resumeTopActivityInnerLocked]

但是,如果我通过通知栏打开相同的通知,则onResume()的{​​{1}}方法不会被调用。理想情况下,它也不应该从锁定屏幕调用,因为我只传递MainActivity

的意图

有什么方法可以避免调用NotificationActivity

onResume()方法

PS-我不确定所有设备和所有操作系统版本都会出现此问题。我测试了安装了Android Oreo的OnePlus5设备和安装了Android 5的另一台Lenevo设备。

0 个答案:

没有答案