代码:
intent = new Intent(ACTION_STOP);
intent.setClass(context, SoundRecorderService.class);
pIntent = PendingIntent.getService(context, 0, intent, 0);
mNotificationView.setOnClickPendingIntent(R.id.btn_stop, pIntent);
Notification.Builder builder=new Notification.Builder(context);
Notification notification = builder.build();
notification.contentView = mNotificationView;
notification.flags |= Notification.FLAG_ONGOING_EVENT;
notification.icon = R.drawable.notification_ic_small;
notification.contentIntent = pIntent;
startForeground(START_NOTIFICATION_ID, notification);
这些代码在android M
中表现良好。但它在android N
中执行异常。当我们第一次点击btn_stop
按钮时,电话系统不会发送此PendingIntent
,因此它不会启动SoundRecorderService.class
。然后我们再次点击它,它的工作原理。
答案 0 :(得分:0)
抱歉!我的通知remoteview布局修复了一个点,错误代码:
<ImageView
android:id="@+id/btn_stop"
android:layout_width="17dp"
android:layout_height="17dp"
android:layout_gravity="center_vertical"
android:background="@drawable/notification_background"
android:focusable="true"
android:focusableInTouchMode="true"
android:src="@drawable/notification_stop"
机器人:focusableInTouchMode =&#34;真&#34;修复android:clickable =&#34; true&#34;正确的代码:
<ImageView
android:id="@+id/btn_stop"
android:layout_width="17dp"
android:layout_height="17dp"
android:layout_gravity="center_vertical"
android:focusable="true"
android:clickable="true"
android:src="@drawable/notification_stop" />
答案 1 :(得分:0)
该错误在模拟器上清晰可见,您可以在同一点上进行任意数量的点击。该错误的本质是在自定义通知区域中定期丢失点击。这些代码在Android L,M和O中表现良好。
如果ImageButton的高度设置为“match_parent”,那么简单布局示例没有工作点击。对我有用的解决方案是设置一个特定的高度值(“64dp”)。
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
tools:layout_height="64dp">
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1">
<ImageButton
android:id="@+id/button_1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:src="@drawable/ic_notify_1"/>
</FrameLayout>
</LinearLayout>