0

我正在使用通知启动活动

final Intent intent = new Intent(context, TestActivity.class);
        intent.setAction(Intent.ACTION_VIEW);
PendingIntent launcher = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
        views.setOnClickPendingIntent(R.id.test_launch_btn, launcher);

如果活动不可见并且我单击通知它工作正常。问题是,ICS如果活动已经可见并且我从通知状态栏单击并不会在单击通知时向上滑动,而在Jellybean状态栏中单击时会向上滑动。单击 ICS 中的通知时状态栏不会折叠。单击通知可以隐藏状态栏。我正在使用运行 4.0.4 的 S3。

4

1 回答 1

4

您是对的,当单击内部按钮启动 Activity 时,Honeycomb 和 ICS 不会自动关闭通知面板。(当时我们无法判断通知的哪个按钮将启动 Activity,我们也无法适当地拦截该点击。在任何点击时关闭面板是没有意义的,因为它会让音乐控制器之类的东西变得非常不愉快。)

以下是您可以执行的操作: 在 HC+ICS 上,一旦您的 Activity 以这种方式启动,您可以广播Intent.ACTION_CLOSE_SYSTEM_DIALOGS以显式关闭通知面板。仅在 Jelly Bean 之前的设备上执行此操作,并且仅当您的活动已启动以响应您自己的通知的 PendingIntent 时。

请注意,如果您的通知按钮使用广播意图而不是启动活动,这仍然是关闭 Jelly Bean 面板的唯一方法。

于 2013-06-28T16:24:51.470 回答