通知通知时发生 TransactionTooLargeException

2024-04-04

我在 android 中录制时有更新时间,我使用 CountDownTimer 并根据通知更新到远程视图。我已经优化了最小的 数据但仍然得到 TransactionTooLargeException。

public void showNotificationRecording() {
    mRemoteViews = new RemoteViews(getPackageName(), R.layout.notify_recording_layout);
    mBuilder = new NotificationCompat.Builder(mContext);
    isSecretModeEnable = mSharePreferencesSettings.getBoolean(RecordSettings.SECRET_MODE, false);
    Log.d(TAG, "isSecretModeEnable " + isSecretModeEnable);
    if (isSecretModeEnable) {
        mRemoteViews = new RemoteViews(getPackageName(), R.layout.notify_secret_mode_layout);
        mBuilder.setPriority(Notification.PRIORITY_MIN)
                .setSmallIcon(R.drawable.ic_notify_secret)
                .setContent(mRemoteViews);

        // Save File Notification
        Intent mIntentSave = new Intent(mContext, RecordAudioService.class);
        mIntentSave.setAction(ACTION_STOP_RECORD);
        PendingIntent mSavePendingIntent = PendingIntent.getService(mContext, 0, mIntentSave, 0);
        mRemoteViews.setOnClickPendingIntent(R.id.iv_notify_save, mSavePendingIntent);
    } else {
        mRemoteViews = new RemoteViews(getPackageName(), R.layout.notify_recording_layout);

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            mBuilder.setVisibility(Notification.VISIBILITY_PUBLIC);
        }
        mBuilder.setSmallIcon(R.drawable.record_circle)
                .setPriority(Notification.PRIORITY_MAX)
                .setDefaults(Notification.DEFAULT_LIGHTS)
                .setContent(mRemoteViews);

        Intent notificationIntent = new Intent(this, MainActivity.class);
        PendingIntent mMainPendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
        mBuilder.setContentIntent(mMainPendingIntent);

        mRemoteViews.setTextViewText(R.id.tv_notify_time, mRecordTimeNotification);
        // Pause and Resume Notification
        Intent mIntentPauseAndResume = new Intent(mContext, RecordAudioService.class);
        mIntentPauseAndResume.setAction(ACTION_PAUSE_AND_RESUME);
        PendingIntent mPauseAndResumePending = PendingIntent.getService(mContext, 0, mIntentPauseAndResume, 0);
        mRemoteViews.setOnClickPendingIntent(R.id.iv_notify_pause_and_resume, mPauseAndResumePending);
        // Save File Notification
        Intent mIntentSave = new Intent(mContext, RecordAudioService.class);
        mIntentSave.setAction(ACTION_STOP_RECORD);
        PendingIntent mSavePendingIntent = PendingIntent.getService(mContext, 0, mIntentSave, 0);
        mRemoteViews.setOnClickPendingIntent(R.id.iv_notify_save, mSavePendingIntent);
        //Delete Notification
        Intent mIntentDelete = new Intent(mContext, RecordAudioService.class);
        mIntentDelete.setAction(ACTION_NOTIFICATION_DISCARD);
        PendingIntent mDeletePendingIntent = PendingIntent.getService(mContext, 0, mIntentDelete, 0);
        mRemoteViews.setOnClickPendingIntent(R.id.iv_notify_closed, mDeletePendingIntent);

        if (isRecording) {
            mRemoteViews.setImageViewResource(R.id.iv_notify_pause_and_resume, R.drawable.ic_notify_pause);
            mState = mContext.getString(R.string.recording_state);
            mRemoteViews.setTextViewText(R.id.tv_notify_status, mState);
        } else {
            mRemoteViews.setImageViewResource(R.id.iv_notify_pause_and_resume, R.drawable.ic_notify_record);
            mState = mContext.getString(R.string.pause_state);
            mRemoteViews.setTextViewText(R.id.tv_notify_status, mState);
        }
    }

    isShowNotification = true;
    mNotificationManager = (NotificationManager) mContext.getSystemService(NOTIFICATION_SERVICE);
    startForeground(NOTIFICATION_ID, mBuilder.build());
}
public CountDownTimer countDownRecordingTime() {
    CountDownTimer time;
    time = new CountDownTimer(Long.MAX_VALUE, 250) {

        @Override
        public void onTick(long millisUntilFinished) {
            final Integer convertToSecond = mCountTimer / 4;
            if (mTime != convertToSecond) {
                mTime = convertToSecond;
                mHandler.post(new Runnable() {
                    @Override
                    public void run() {
                        showTimeRecording(mTime);
                    }
                });
            }
            mCountTimer++;

            // check when user setting timer
            if (mTimerToEnd != 0 && mTimerToEnd == convertToSecond) {
                onStopRecording();
            }
        }

        @Override
        public void onFinish() {

        }
    };
    return time;
}

我更新通知如下,我只更新时间记录到通知。

private void showTimeRecording(int convertToSecond) {
    int hours = convertToSecond / 3600;
    int minutes = (convertToSecond % 3600) / 60;
    int seconds = convertToSecond % 60;
    mRecordTime = String.format(Locale.getDefault(), "%02d:%02d:%02d", hours, minutes, seconds);
    mRecordTimeNotification = mRecordTime;

    mRemoteViews.setTextViewText(R.id.tv_notify_time, mRecordTimeNotification);
    if (!mState.equals(mContext.getString(R.string.recording_state))) {
        mState = mContext.getString(R.string.recording_state);
        mRemoteViews.setTextViewText(R.id.tv_notify_status, mState);
    }
    mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build());
}

请帮我解决这个问题。


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通知通知时发生 TransactionTooLargeException 的相关文章

  • 如何使用 Maven 打包并运行具有依赖项的简单命令行应用程序?

    我对 java 和 Maven 都是全新的 所以这可能非常简单 如果我遵循maven2hello world此处的说明 http maven apache org guides getting started maven in Five m
  • 具有 java XSLT 扩展的数组

    我正在尝试使用 java 在 XSLT 扩展中使用数组 我收到以下错误 Caused by java lang ClassCastException org apache xpath objects XObject cannot be ca
  • 使用 SQLITE 按最近的纬度和经度坐标排序

    我必须获得一个 SQLite SQL 语句 以便在给定初始位置的情况下按最近的纬度和经度坐标进行排序 这是我在 sqlite 数据库中的表的例句 SELECT id name lat lng FROM items EXAMPLE RESUL
  • Javafx过滤表视图

    我正在尝试使用文本字段来过滤表视图 我想要一个文本字段 txtSearch 来搜索 nhs 号码 名字 姓氏 和 分类类别 我尝试过在线实施各种解决方案 但没有运气 我对这一切仍然很陌生 所以如果问得不好 我深表歉意 任何帮助将不胜感激 我
  • 有没有一种快速方法可以从 Jar/war 中删除文件,而无需提取 jar 并重新创建它?

    所以我需要从 jar war 文件中删除一个文件 我希望有类似 jar d myjar jar file I donot need txt 的内容 但现在我能看到从 Linux 命令行执行此操作的唯一方法 不使用 WinRAR Winzip
  • 如何在 Viewpager 中禁用预加载下一页? [复制]

    这个问题在这里已经有答案了 如何在 Viewpager 中禁用页面预加载 I tried viewPager setOffscreenPageLimit 0 但它不起作用 用这个viewPager setOffscreenPageLimit
  • 有关 ListView 自定义行布局项目上的 onClick() 事件的帮助

    我有一个 ListView 其行由我格式化 每行都有 ImageView 和 TextView 的混合 我还实现了自己的适配器 并且能够通过它绘制每一行 现在 我想要这样的东西 用户单击 ImageView 不是行上的其他任何位置 但只有此
  • 如何修改 Skobbler 注释而不重新添加它

    我必须修改 SKAnnotation 的图像 注释生成器代码 private SKAnnotation getAnnotationFromView int id int minZoomLvl View view SKAnnotation a
  • 按钮 - 单击时更改背景颜色

    我的活动中有 8 个按钮 我正在寻找的是 按钮具有默认背景 单击按钮时 背景颜色应更改为其他颜色 这部分非常简单 但是 当我单击任何其他按钮时 第一个按钮的背景颜色应该变回默认颜色 我知道这将使用 选择器状态 来完成 但我不太确定如何实现它
  • Android:监听状态栏通知

    有没有办法在状态栏被下拉时监听通知 1 用于检测状态栏变化 您可以注册一个监听器来获取系统UI可见性变化的通知 因此 要在您的活动中注册侦听器 Detecting if the user swipe from the top down to
  • Android:RecyclerView 不显示片段中的列表项

    有人可以帮我尝试让我的 RecyclerView 出现吗 如果我不在片段中实现它 就会出现这种情况 然而 当我尝试将其实现到片段中时 CarFront 中的其他 XML 代码与 RecyclerView 分开显示 我的日志中收到此错误 E
  • 替换后增量

    我自己已经有一个问题了 但我想扩展它后增量示例 https stackoverflow com questions 51308967 post increment with example char a D int b 5 System o
  • HQL Hibernate 内连接

    我怎样才能在 Hibernate 中编写这个 SQL 查询 我想使用 Hibernate 来创建查询 而不是创建数据库 SELECT FROM Employee e INNER JOIN Team t ON e Id team t Id t
  • Android studio - 如何查找哪个库正在使用危险权限?

    我正在尝试将 apk 上传到 google play 商店 但令我惊讶的是 我正在使用以下权限 Your APK is using permissions that require a privacy policy android perm
  • Android 中循环事件的星期几和时间选择器

    我想创建一个控件 允许用户在我的 Android 活动中选择一周中的某一天 星期一 和一天中的某个时间 下午 1 00 找不到任何关于此的好帖子 好吧 我想我已经明白了 我只是不喜欢这个解决方案 因为我在一周中的某一天使用的微调器与时间选择
  • 为什么这个作业不起作用?

    我有课Results which extends ArrayList
  • 使用单选按钮更改背景颜色 Android

    我试图通过从单选组中选择单选按钮来更改应用程序选项卡的背景 但是我不确定如何执行此操作 到目前为止我已经 收藏夹 java import android app Activity import android os Bundle publi
  • ServletContainer 类未找到异常

    我无法再编译我的球衣项目 并且出现以下异常 GRAVE Servlet Project API threw load exception java lang ClassNotFoundException com sun jersey spi
  • Android 中带有组的列表视图

    我有一个列表视图 每行都有一些日期和文本 我可以像 iPhone 中那样将这个 listView 分组 组之间有标题吗 在 android 中是否可能 请帮忙 即 我需要在 Listview 行之间有标题栏 以便如果我使用日期对其进行分组
  • 如何在片段中实现 onBackPressed() 和意图?

    我知道 onBackPressed 是活动中的一种方法 但是 我想在片段中使用该功能 以便当按下后退按钮时 它会通过 Intent 重定向到另一个活动 有什么办法解决这个问题吗 public class News Events fragme

随机推荐

  • 多个 Eclipse 项目中的多个 Git 分支

    我们正在从 Subversion 转换到 Git 而我在 Git 中遇到的一件事是切换分支的方法 我的理解是 无论是在命令行还是在 Eclipse 中使用 EGit 切换到不同的分支都会将 Eclipse 工作区文件夹的内容替换为所需分支的
  • Redirect::back() 在 Laravel 5.2 中不起作用

    if count data 1 return view welcome else echo dslkfjads Redirect back gt with message Username or password not Match 上述
  • 两个日期之间的月份差异

    C 如何计算两个日期之间的月份差异 有没有相当于VB的DateDiff C 中的方法 我需要找出相隔数年的两个日期之间的月份差异 文档说我可以使用TimeSpan like TimeSpan ts date1 date2 但这给了我以天为单
  • Python 2.5:XML 中的 ElementTree 和 UML

    我正在使用一个代表 UML 模型的 XML 文件 下面是一个例子
  • Couchbase N1QL 联接查询

    需要 Couchbase 环境中的查询帮助 文档1和文档2都在同一个桶中 首先 查询将使用以下查询获取文档 message1 SELECT uid message sent by FROM bucket USE KEYS message1
  • Composer 需要 phpoffice/phpspreadsheet 不起作用

    我想使用 Phpspreadsheet 包编写一个脚本 我没有 php 经验 我正在尝试通过 sudo Composer require phpoffice phpspreadsheet 添加对我的脚本的引用 但这不起作用 我收到错误 安装
  • Mac Lion 上架构 x86_64 ImageMagick 的未定义符号

    在 Mac Lion 上 我完成了配置 制作并安装了 ImageMagick 的静态版本 一切顺利 作为配置的结果 我得到了 configuring ImageMagick 6 7 2 4 checking build system typ
  • 从 Perl 中的字符串中删除换行符

    我有一个从文本文件读取的字符串 但在 Ubuntu Linux 中 我尝试从末尾删除其换行符 我用了所有的方法 但对于s n r 我看看它是否找到任何替换任何新行字符串 它替换了字符串 但当我打印它时它仍然转到下一行 此外 当我使用chom
  • VueJS 获取 Div 的宽度

    我有一个 Vue 组件 它使用引导网格 在子组件中 我想获取控制器中某个 div 的当前宽度 这是子组件
  • 如何克服 Selenium 中的 Element id 异常?

    T 在 UiBinder 本身中为 GWT 小部件设置 id For eg 还添加了在 gwt xml 中 然后我在 Selenium 测试用例中尝试这个 WebElement element driver findElement By i
  • 为什么java TreeMap基于红黑树的实现?

    第三段维基百科关于 AVL 树的文章 http en wikipedia org wiki AVL tree说 因为 AVL 树更加严格平衡 所以对于查找密集型应用程序来说 它们比红黑树更快 所以 不应该TreeMap http docs
  • 具有递归类型参数的泛型类型以及抽象 self 方法如何允许方法链正常工作?

    我在读有效的 Java 版本 3 在第 2 章第 14 页中 作者讨论了构建器模式并呈现了以下代码 public abstract class Pizza public enum Topping HAM MUSHROOM ONION PEP
  • Java:获取对象的唯一哈希值

    我正在尝试获取Java对象的唯一哈希值 如下所示 If A B then A HashValue B Hash HashValue If A B then A HashValue B HashValue 假设该对象包含几个布尔值和整数字段
  • @angular-builders - 在优化阶段忽略某些脚本

    我需要让 Angular 忽略某个js文件在优化阶段 这样它就不会被优化 缩小 prod建造 为此目的 angular builders包似乎是一个可行的解决方案 我设置了angular json配置如下 architect build b
  • Android:如何通过 ueventd.rc 向设备授予 666 权限

    我需要访问连接到我的 已root Android 的USB 摄像头 我使用的是运行 Android 4 2 2 的三星 Galaxy S4 我想用普通的应用程序访问它 所以我需要该设备是世界可读的 我可以通过 shell 进行连接并输入 r
  • 读取Excel文件时如何识别单元格为空白或为空或为空

    我读取了一个 Excel 文件来传递某些数据字段的输入 但是当我运行该程序时 某些单元格值返回为 null 某些单元格值返回为空白 实际上 当我打开 Excel 文件时 单元格中没有可用值 如何手动识别 Excel 单元格为空或空白 对于某
  • PHP:为什么只能通过引用传递变量?

    如果您是 PHP 开发人员 您很可能看到过以下通知 注意 在 somefile php 中只有变量应该通过引用传递 在线 xxx 问题广泛处理于只有变量应该通过引用传递 https stackoverflow com questions 4
  • 更新属性文件的更好的类?

    Though java util properties允许读写属性文件 写入时不保留格式 这并不奇怪 因为它与属性文件无关 有没有PropertyFile那里的类 或类似的类 保留注释和空行并更新属性值 它没有比 Apache 的 Comm
  • SQLAlchemy 中的 VALUES 子句

    有没有办法建立一个QuerySQLAlchemy 中的对象相当于 SELECT FROM VALUES 1 2 3 AS sq 从我在文档中看到的 VALUES子句仅出现在与INSERT 现在 这在 SQLAlchemy 中本身就可用 您的
  • 通知通知时发生 TransactionTooLargeException

    我在 android 中录制时有更新时间 我使用 CountDownTimer 并根据通知更新到远程视图 我已经优化了最小的 数据但仍然得到 TransactionTooLargeException public void showNoti