我在一些设备上遇到异常,主要是android 4.3 / 4.4(Samsung / Moto G)。但是,当我在我的设备和模拟器上调试它时它工作正常。 以下是例外
android.app.RemoteServiceException:从包com.xxxxx发布错误通知:无法展开RemoteViews:StatusBarNotification
这是我的代码
mNotificationManager = (NotificationManager)
this.getSystemService(Context.NOTIFICATION_SERVICE);
Intent intent = new Intent(this,TipOfWeekActivity.class);
intent.putExtra(CureMeConstants.MESSAGE, msg);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0,
intent, 0);
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.store_icon)
.setContentTitle("Tip of the week")
.setAutoCancel(true)
.setContentText(Html.fromHtml(msg , null, new ListTagHandler()));
Uri alarmSound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
mBuilder.setSound(alarmSound);
mBuilder.setVibrate(null);
mBuilder.setContentIntent(contentIntent);
mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build());
以下是我的布局如何
<RelativeLayout 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:paddingTop="@dimen/activity_vertical_margin"
tools:context=".TipOfWeekActivity" >
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scrollbars="none|vertical"
android:layout_above="@id/ad"
android:layout_alignParentTop="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="10dp" >
<ImageView
android:id="@+id/icon"
android:layout_width="fill_parent"
android:layout_height="100dp"
android:contentDescription="@id/title"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:src="@drawable/tip_of_week" />
<TextView
android:id="@+id/message"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@null"
android:paddingBottom="10dp"
android:paddingTop="10dp"
android:textAlignment="gravity"
android:textSize="14sp"
android:linksClickable="true" />
<Button
android:id="@+id/btnHome"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@null"
android:linksClickable="true"
android:onClick="goBackHome"
android:text="@string/goBackHome"
android:textColor="#0000FF" />
</LinearLayout>
</ScrollView>
</RelativeLayout>
有人可以建议我可能出现什么问题吗?这是特定于Android版本的吗?任何帮助将不胜感激。
更新
进一步调查后,我在模拟器上发现以下异常
无法通知视图通知
“段落范围必须从段落边界开始”
但是在我的代码中,我已经处理了一个段落,ul和li标签。
private void handleListTag(Editable output) {
if (m_parents.lastElement().equals("ul")) {
output.append("\n");
String[] split = output.toString().split("\n");
int lastIndex = split.length - 1;
int start = output.length() - split[lastIndex].length() - 1;
output.setSpan(new BulletSpan(15 * m_parents.size()), start,
output.length(), 0);
} else if (m_parents.lastElement().equals("ol")) {
m_index++;
output.append("\n");
String[] split = output.toString().split("\n");
int lastIndex = split.length - 1;
int start = output.length() - split[lastIndex].length() - 1;
output.insert(start, m_index + ". ");
output.setSpan(
new LeadingMarginSpan.Standard(15 * m_parents.size()),
start, output.length(), 0);
}
}
此代码也适用于版本4.1.2的Android设备。有人知道android 4.3 / 4.4中处理列表标签的异常吗?
答案 0 :(得分:0)
请注意,上述功能不会在所有设备上引发异常。
在调试代码时,我发现了以下事项。
当要在通知窗口中显示的消息包含 ul li 等标记时,远程视图未被扩展。当NotificationBuilder中的TextView遇到此类标记时,它无法展开视图并抛出异常即使使用TagHandler正确处理标签。简单的解决方案是从通知Windows显示中删除此类标记。