MobPush Android常见问题

news2024/11/26 1:28:55

配置了默认点击跳转界面,对所有通道都有效吗

只对MobPush、魅族、小米、华为、OPPO、VIVO通道有效,对FCM通道无效。

如何获取回调参数

  • 进程存活的情况下,可在我们的回调监听中看到通知详情,可以根据回调参数进行处理。 详情请查看 API接口->推送监听接口。
  • 进程被杀情况下,回调监听不可用,但点击通知后拉起应用的启动页面,会触发启动Activity的onCreate或onNewIntent,通过getIntent拿到回传的Intent,可以拿到通知详情。
  • 注:PushSDK提供了解析方法来获取回调参数,但厂商通知主要是获取附加字段,不会把所有信息都解析出来。 跳转首页获取参数
JSONArray jsonArray =  MobPushUtils.parseMainPluginPushIntent(getIntent());
System.out.println("-------------JsonPushData打印查看:"+jsonArray);

返回说明

返回字段说明
“id”:“4bu9702gmq4mvl3myo”id通知任务id ,仅厂商通知有该字段
{“key”:“value”}附加字段附件字段需指定,不指定不会出现 ,仅厂商通知有该字段
{“from_tcp”:true}from_tcp消息是否来自MobPushTCP通道,true:是
{“msg”:“MobPushNotifyMessage{}”}msg消息体,对象为MobPushNotifyMessage,仅MobPushTCP通道消息有该字段
{“channel”:“mobpush”}channel渠道名

2.2 scheme跳转获取参数,详情请查看 API接口->scheme跳转

JSONArray jsonArray = MobPushUtils.parseSchemePluginPushIntent(getIntent());
System.out.println("-------------JsonScheme打印查看:"+jsonArray);

返回说明

返回字段说明
{“from_tcp”:true}from_tcp消息是否来自MobPushTCP通道,true:是
{“msg”:“MobPushNotifyMessage{}”}msg消息体,对象为MobPushNotifyMessage,仅MobPushTCP通道消息有该字段
{“key”:“value”}附加字段附件字段需指定,建议不要使用url做为key
{“mobpush_link_k”:“mlink://com.mob.mobpush.link”}schemescheme地址
{“mobpush_link_v”:“schemeKey=schemeValue”}scheme参数scheme地址下携带的scheme参数
{“id”:“4brfm8nti9aj1arf28”}id推送任务id
{“channel”:“xiaomi”}channel渠道名
{“schemeLink”:“mlink://com.mobpush.demo2”}schemescheme地址
{“schemeKey”:“schemeValue”}scheme参数scheme地址下携带的scheme参数(华为,VIVO,OPPO)
{“schemeKey”:“schemeValue”,“schemeUrl”:“mlink://com.mob.mobpush.link”}schemeUrlscheme地址下携带的scheme参数(flyme)

3.如不使用PushSDK提供的解析方法,可参考以下方法获取回调参数

private void dealPushResponse(Intent intent) {
        Bundle bundle = null;
        if (intent != null) {
            bundle = intent.getExtras();
            if (bundle == null) {
                Log.e("PushResponse","bundle的值为空"+bundle);
                return;
            }
            else {
                Set<String> keySet = bundle.keySet();
                if (keySet == null || keySet.isEmpty()) {
                    return;
                }
                for (String key  : keySet) {
                    //通过key获取bundle中的key对应的值。就是附加数据了
                    Log.e("PushResponse","bundlekey===========================点击信息"+key);
                }
                Log.e("PushResponse","bundle===========================点击信息"+bundle.toString());
            }
        }
    }

OPPO推送时按全部人群进行推送,为什么有的OPPO设备接收不到

因为OPPO推送对应全部人群这种全量推送是有个时间限制规则的,当全量推送时当天新注册的OPPO设备是不生效的,第二天才生效,被全量推送计算在目标设备组中,T+1规则。 而对应单一OPPO设备推送时,没有T+1规则限制,注册成功即立即生效。

厂商推送打开通知都会有回调吗

不是都有回调,OPPO推送没有接收通知和打开通知的回调;FCM推送在应用处于后台时或者应用进程被杀掉时没有接收通知和打开通知的回调。

应用在前台时,MobPush通道推送接收不到

应用在前台时,MobPush通道推送接收不到,请按照以下步骤检查:
1.检查手机网络是否正常
2.检查手机通知权限是否打开
3.是否在通知栏不重要的通知里
4.检查应用配置是否正确

调用MobPush.setClickNotificationToLaunchMainActivity(),设置为false,点击通知不启动主页,为什么设置后,没有起作用

此方法不是对所有通道都起作用,目前只对MobPush通道、魅族通道、小米通道起作用,对于华为通道、OPPO通道、FCM通道来说,由于各个厂商不同实现的原因,是否调用此方式都不影响这三个通道,默认都是启动主页。

OPPO和VIVO设备通知权限开关问题

OPPO:
在未接入OPPO PUSH前,应用的通知栏权限是默认关闭状态; 接入OPPO PUSH后,ColorOS3.1至5.0版本的OPPO手机,用户激活了相关应用后,通知栏权限会默认打开。特别说明,若用户在使用旧版本应用(未集成OPPO PUSH),手动将应用的通知栏权限进行了关闭,则只有用户手动卸载旧版本应用,再安装新版本(集成OPPO PUSH)并激活,通知栏才会默认打开。采用覆盖安装的方式,通知栏权限不会默认开启; ColorOS5.1及以后的版本的手机,通知栏权限由系统统一关闭,需用户手动打开。

VIVO:
集成VPUSH,通知权限总开关基本默认打开,但下方类别开关默认关闭,需要用户手动打开。

小米手机接收不到推送

如果未在小米商店发布的移动应用(APP),小米推送团队将有权不再提供推送服务。小米应用商店对开发者应用定期安全审核的结果,调整该应用的推送权限,如开发者应用未能通过小米应用商店定期安全审核,小米有权单方解除协议,或立即关闭该应用的推送权限,直至该应用通过小米应用商店的安全审核并在小米应用商店发布。详情可参考:link

如果小米手机接收不到推送,请先检查通知权限是否开启,同时小米设备从MIUI9开始通知栏使用不重要通知过滤,检查通知栏里不重要通知里是否有对应应用的通知。

应用通知权限未打开状态,打开后推送接收不到

一开始应用通知权限未打开,等进行通知权限打开时,请杀掉进程,重新启动APP然后重新推送。

接收回调和点击通知回调一定会被调用吗

不一定。分推送通道,不同厂商,有不同的实现方式,导致有的都回调,有的只会回调点击通知,有的都没有回调。

MobPush通道,接收回调和点击通知回调都会被调用;

华为厂商通道,厂商推送只提供了点击通知回调;

小米厂商通道,接收回调和点击通知回调都会被调用;

魅族厂商通道,接收回调和点击通知回调都会被调用;

OPPO厂商通道,两种回调都没有;

FCM通道,应用在前台时接收回调和点击通知回调都会被调用,应用在后台或者应用进程被杀掉未启动时两种回调都没有;

VIVO厂商通道,厂商推送只提供了点击通知回调。

设置标签成功后,进行通过标签推送,接收不到推送

设置标签成功后,个别厂商同步拉取数据需要时间,导致接口设置标签成功,但是推送时设备没有同步,没有目标设备,故推送接收不到。建议设备标签成功后,等待几分钟之后再进行推送。

一台设备能设置几个别名?不同的设备能设置相同的别名吗?

同一个APP,一台设备只能对应一个别名,新设置的会覆盖掉之前设置的别名。不同的设备不能同时设置相同的别名,最后设置的设备生效,其他设备的别名都将失效。

如果应用在Android 9的设备上获取不到注册ID即(regId)

如果在其他版本的Android手机可以获取到注册ID,而在Android 9的设备上获取不到时,请确认下targetSdkVersion是大于27; 大于27时需在AndroidManifest.xml文件的中application标签中添加 android:usesCleartextTraffic=“true”

如果推送配置了FCM厂商,同时需要使用Firebase 的其他产品(ads等产品)时,编译时报错了,怎么办

1.单独配置ads和FCM时,他们所依赖的相同的库版本是否一致,如果不一致,需要进行版本统一;
2.进行版本统一:在APPmodule的build.gradle中添加

configurations.all { 
    exclude group: 'com.google.firebase', module: 'firebase-messaging' 
} 
//在app module 的build.gradle文件的dependencies里添加
compile 'com.google. firebase:firebase-messaging:17.1.0'

配置vivo厂商推送的appId和AppKey时,需要把“-”去掉吗

不需要

接入vivo厂商推送,发送推送成功,vivo设备未接收到推送

1.检查配置是否正确,包名是否和申请vivo推送服务时的包名一致;
2.手机通知权限是否打开;
3.检查消息是否已经送达但是折叠到了消息盒子里面?目前的策略是应用存活时展示,不存活时折叠;
4.检查设备联网是否有问题,如果连接的wifi设置了代理,一般需要重启手机,可以切换手机网络重试;

如果配置了厂商推送的信息,但是运行打包发现AppKey不完整,确实第一个数字时,怎么办

这是gradle版本太高导致的,请在配置有问题的地方加入一个空格。

配置了华为厂商推送,为什么有的华为设备无法接收离线消息

首先,排查配置的华为厂商参数是否正确; 其次,检查华为设备EMUI版本,低于5.0可能不支持,如果低于5.0,可以尝试升级设备里的‘华为移动服务’应用,升级‘华为移动服务’可能会支持华为厂商推送。

MobPush的厂商推送和应用使用的其他第三方产品中的厂商推送冲突了,如何解决

首页,在build.gradle的MobPush{}配置中照常配置厂商信息; 然后,在build.gradle文件最后添加:

configurations.all {
    exclude group: 'com.mob.push.plugins', module: 'meizu'   //屏蔽MobPush提供的魅族厂商包
    exclude group: 'com.mob.push.plugins', module: 'xiaomi'  //屏蔽MobPush提供的小米厂商包
    exclude group: 'com.mob.push.plugins', module: 'vivo'    //屏蔽MobPush提供的vivo厂商包
    exclude group: 'com.mob.push.plugins', module: 'oppo'    //屏蔽MobPush提供的oppo厂商包
}

哪个厂商冲突,exclude哪个厂商就可以。

如果应用使用的其他第三方产品中的魅族厂商推送和MobPush的魅族厂商推送冲突了,推送时其中一个不起作用

由于魅族厂商推送对接收监听回调只取AndroidManifest.xml中配置的第一个Reciever,所以哪个组件在前面配置哪个组件就生效,后面配置的均无效。
解决方法: 自定义一个Receiver,继承MzPushMessageReceiver,重写里面所有的方法,在这个Receiver中调用MobPush的魅族回调和第三方产品的魅族回调,并在AndroidManifest.xml文件中进行配置:

<receiver
                android:name="自定义Receiver">
                <intent-filter>
                        <action
                                android:name="com.meizu.flyme.push.intent.MESSAGE" />
                        <action
                              android:name="com.meizu.flyme.push.intent.REGISTER.FEEDBACK" />
                        <action
                                android:name="com.meizu.flyme.push.intent.UNREGISTER.FEEDBACK" />
                        <action
                                android:name="com.meizu.c2dm.intent.REGISTRATION" />
                        <action
                                android:name="com.meizu.c2dm.intent.RECEIVE" />
                        <category
                                android:name="包名" />
                </intent-filter>
        </receiver>

在自定义的Receiver里实现示例:

public class MyReceiver extends MzPushMessageReceiver {
         private OtherReceiver otherReceiver;
         private PushMeiZuRevicer mobpushMeiZuReceiver;
         public MyReceiver() {
                otherReceiver = new OtherReceiver();
                mobpushMeiZuReceiver = new PushMeiZuRevicer();
         }
         @Override
         public void onPushStatus(Context context, PushSwitchStatus pushSwitchStatus) {
                otherReceiver.onPushStatus(context, pushSwitchStatus);
                mobpushMeiZuReceiver.onPushStatus(context, pushSwitchStatus);
         }
         @Override
         public void onRegisterStatus(Context context, RegisterStatus registerStatus) {
                otherReceiver.onRegisterStatus(context, registerStatus);
                mobpushMeiZuReceiver.onRegisterStatus(context, registerStatus);
         }
         @Override
         public void onRegister(Context context, String s) {
                otherReceiver.onRegister(context, s);
                mobpushMeiZuReceiver.onRegister(context, s);
         }
         @Override
         public void onUnRegister(Context context, boolean b) {
                otherReceiver.onUnRegister(context, b);
                mobpushMeiZuReceiver.onUnRegister(context, b);
         }
         @Override
         public void onUnRegisterStatus(Context context, UnRegisterStatus unRegisterStatus) {
                otherReceiver.onUnRegisterStatus(context, unRegisterStatus);
                mobpushMeiZuReceiver.onUnRegisterStatus(context, unRegisterStatus);
         }
         @Override
         public void onSubTagsStatus(Context context, SubTagsStatus subTagsStatus) {
                otherReceiver.onSubTagsStatus(context, subTagsStatus);
                mobpushMeiZuReceiver.onSubTagsStatus(context, subTagsStatus);
         }
         @Override
         public void onSubAliasStatus(Context context, SubAliasStatus subAliasStatus) {
                otherReceiver.onSubAliasStatus(context, subAliasStatus);
                mobpushMeiZuReceiver.onSubAliasStatus(context, subAliasStatus);
         }
         @Override
         public void onNotificationClicked(Context context, MzPushMessage mzPushMessage) {
                otherReceiver.onNotificationClicked(context, mzPushMessage);
                mobpushMeiZuReceiver.onNotificationClicked(context, mzPushMessage);
         }
         @Override
         public void onNotificationArrived(Context context, MzPushMessage mzPushMessage) {
                otherReceiver.onNotificationArrived(context, mzPushMessage);
                mobpushMeiZuReceiver.onNotificationArrived(context, mzPushMessage);
         }

         @Override
         public void onNotifyMessageArrived(Context context, String s) {
                otherReceiver.onNotifyMessageArrived(context, s);
                mobpushMeiZuReceiver.onNotifyMessageArrived(context, s);
         }
    }

配置了魅族厂商推送,客户端debug log输出注册成功,推送时接收不到推送或者离线推送接收不到,如何解决

1.确认下魅族厂商推送接入的是flyme推送,而不是ups推送。
2.确认下魅族开发者平台创建的应用是否配置了回执,如果没有配置,请配置上哦~,这个会影响推送结果,导致推送不成功。
3.如果上面都确认正常,仍存在问题请联系MobTech技术支持进行排查解决。

同一个推送监听回调被调用了多次,为什么

如果应用有多个子进程,同时推送监听回调是在Application的onCreate方法中添加,那么存在几个子进程Application的onCreate会调用几次,监听回调也会被添加几次,所以会出现同一个推送监听回调被调用多次的情况。 如果想要只监听回调主进程,那么再添加时需判断下当前进程,为主进程时再添加推送监听回调。

支持角标功能吗

MobPush是支持角标功能的。需调用MobPush.setShowBadge(true);打开角标功能,默认false,角标功能关闭。
对于厂商通道来说,小米系统本身就支持角标功能,不需要做任何处理;
魅族厂商不支持角标功能;
OPPO和VIVO厂商目前只对自家应用和微信QQ开放角标功能;
华为厂商对EMUI 8.0 及以上支持角标功能,如果需要对华为厂商打开角标功能,在服务端推送时在extrasMapList参数里面新增androidBadgeClass参数,其参数值是应用入口Activity 的全路径,这样EMUI8.0及以上走华为厂商推送的设备就可以显示角标了。

MobPush支持多包名吗

支持。

一台设备应用能设置多个标签吗?相同应用不同的设备能设置相同的标签吗

同一个APP,一台设备可以订阅多个标签,标签请尽量使用英文避免使用中文或特殊字符,导致厂商订阅标签失败而推送不成功;不同的设备可以同时设置同一标签。

MobPush的RegistrationId会发生变化吗?如果发送变化是在什么时机下?RegistrationId是固定长度的吗

注册id一般情况下不会发送变化,但也会出现发现变化的情况,有时卸载重装或者设备恢复出厂设备等情况下注册id会发生变化,而注册id的长度由于服务端内部优化后续会变化,不是固定长度的。

使用StopPush是否会关闭所有厂商渠道推送

除了FCM厂商无法关闭(没有提供相关接口),TCP以及其他厂商都是正常关闭的。

打开通知权限后,还是无法收到

MobPush只会在初始化的时候更新记录的通知权限状态。

如初始化的时候通知权限是关闭的,需再次重启APP,更新记录的通知权限状态。 如需要实时更新,可调用该方法:

//打开轮询开关
MobPush.startNotificationMonitor();
//关闭轮询开关
MobPush.stopNotificationMonitor();

无法统计到厂商

请在点击通知打开的Activity的onCreate中加上该方法

MobPush.notificationClickAck(getIntent());

华为厂商长文本样式无效

使用华为长文本样式,标题(title)为必填项。

华为厂商解析intent为空

华为传递数据给应用仅在NC版本在在9.11及以上版本生效,NC版本查看方式(设置-应用-应用管理-推送服务),老旧设备存在无推送服务或版本较低问题,可尝试升级版本解决,如无法升级,华为未给出老旧设备兼容方案。详细说明可查看:link

集成华为厂商通道上架Google商店被拒,应该怎么解决?

如上架google商店被拒文案中有“We found your app is using a non-compliant version of Huawei Mobile Services SDK which contains code to download or install applications from unknown sources outside of Google Play”字样,原因是您当前使用的华为厂商SDK版本过低,华为在 6.3.0.304(2022-03-31)及以上的版本修复了该问题,您可在Gradle脚本中主动声明该版本,示例如下。
图片

本地通知使用setTimestamp函数在Android12及以上版本无效

因在Android12版本,在调用精准闹钟方法时,必须进行SCHEDULE_EXACT_ALARM权限的添加,可以在 manifest文件中添加此权限解决。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/740438.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

阿里云ECS云服务器的云盘使用

在我阿里云控制台上&#xff0c;可以看到有额外的磁盘&#xff08;2个实例&#xff0c;3个磁盘&#xff09; 找到对应云服务实例&#xff0c;看到了云盘信息 状态显示的挂接点是&#xff1a;/dev/xvdb 进入服务器却无法找到&#xff0c;也无法挂载 执行命令&#xff1a;fdisk …

c# 实现条件编译

创建三个不同的项目配置&#xff0c;分别代表不同的平台&#xff0c;在 Visual Studio 中&#xff0c;可以通过右键单击项目&#xff0c;选择“属性”&#xff0c;然后在“生成”选项卡下配置不同的条件编译符号。 针对 Windows 平台&#xff1a;在“生成”选项卡的“条件编译…

iOS--编译

前言 iOS 开发中使用的是编译语言&#xff0c;所谓编译语言是在执行的时候&#xff0c;必须先通过编译器生成机器码&#xff0c;机器码可以直接在CPU上执行&#xff0c;所以执行效率较高。他是使用 Clang / LLVM 来编译的。LLVM是一个模块化和可重用的编译器和工具链技术的集合…

Tomcat之配置文件详解

Tomcat 目录 安装好 Tomcat 后&#xff0c;打开它的文件夹&#xff0c;可以看到以下目录 bin:存放各种启动、关闭和其它程序的脚本 conf:配置文件及相关数据文件存放的目录 lib:Tomcat 使用的库文件存放的目录&#xff0c;如存放 Servlet 规范的 API logs:默认日志文件存放…

centos 配置好网络后无法ping 通百度

问题&#xff1a; ping 自己配置的ip地址能够ping通&#xff0c;ping 连接的WiFi &#xff08;可以上外网&#xff09;地址也能ping通&#xff0c;但是ping www.baidu.com 却ping不同&#xff1b; 配置 处理方法&#xff1a; 我的虚拟机开通了三张网卡&#xff0c;150段…

更新NGINX域名证书文件

背景&#xff1a; 由于域名正式认证即将要到期&#xff0c;需要更新基于nginx的域名证书文件。 一、更新nginx域名证书文件 1、查看对应域名使用的正式文件名 # 查看使用的域名证书文件 # 我的环境配置https的nginx相关配置文件是&#xff1a;ierp_https.confcat /usr/loca…

Vue3+Vite+Pinia+Naive后台管理系统搭建之二:scss 的安装和使用

前言 如果对 vue3 的语法不熟悉的&#xff0c;可以移步 Vue3.0 基础入门&#xff0c;快速入门。 1. 安装依赖 yarn add sass -D // or npm install sass -D 2. 页面样式初始化 reset.scss /* 新建 src/assets/style/reset.scss */ /* 页面样式初始化 */ html, body, div, s…

前端Vue自定义水平步骤条组件

随着技术的发展&#xff0c;开发的复杂度也越来越高&#xff0c;传统开发方式将一个系统做成了整块应用&#xff0c;经常出现的情况就是一个小小的改动或者一个小功能的增加可能会引起整体逻辑的修改&#xff0c;造成牵一发而动全身。 通过组件化开发&#xff0c;可以有效实现…

edk2 security boot校验流程

edk2整体架构 关于安全校验的核心逻辑 Code\Edk2\MdeModulePkg\Universal\SecurityStubDxe\SecurityStub.c Status gBS->InstallMultipleProtocolInterfaces (&mSecurityArchProtocolHandle,&gEfiSecurity2ArchProtocolGuid,&mSecurity2Stub,&gEfiSecurit…

神经网络架构设计常见问题及解答

如果你是人工神经网络 (ANN) 的初学者&#xff0c;你可能会问一些问题。 比如要使用的隐藏层数量是多少&#xff1f; 每个隐藏层有多少个隐藏神经元&#xff1f; 使用隐藏层/神经元的目的是什么&#xff1f; 增加隐藏层/神经元的数量总是能带来更好的结果吗&#xff1f; 使用什…

JAVA_SE 银行存钱(控制台程序)

仓库地址&#xff1a;https://gitee.com/ThMyGitee/Bank.git CSDN的友友们&#xff0c;项目如果适合您的话&#xff0c;麻烦给个小小的Star&#xff0c;谢谢啦&#xff01; JAVA_SE 银行存钱(控制台程序) 1.流程图 2.开发环境 JDK1.8 IDEA 2019.33.界面运行 模拟转账业务&…

复习V2+V3之——02 事件处理

事件处理 事件的基本使用 1.使用v-on:xxx 或者 xxx 绑定事件&#xff0c;其中xxx是事件名 一般来说用 xxx 这种方式多一点 2.事件的回调函数需要配置在 methods 对象中&#xff0c;最终会在 vm 上面 3.methods中配置的函数&#xff0c;不要用箭头函数&#xff01;否则this…

python爬虫哪个库用的最多

目录 常用的python爬虫库有哪些 1. Requests&#xff1a; 2. BeautifulSoup&#xff1a; 3. Scrapy&#xff1a; 4. Selenium&#xff1a; 5. Scrapy-Redis&#xff1a; 哪个爬虫库用的最多 Scrapy示例代码 总结 常用的python爬虫库有哪些 Python拥有许多常用的爬虫库…

node版本控制工具nvm使用笔记

由于不同的项目所需要的node环境不同&#xff0c;所以在运行支持node 12或者node 16版本的项目时卸载安装不同版本的node非常麻烦&#xff0c;恰巧公司有一个热心的同事告诉我可以使用nvm来进行版本控制&#xff0c;我使用了之后发现确实好用&#xff0c;写一篇笔记记录一下。 …

每天晚上12点服务器关机,第二天6点自动唤醒

每天晚上12点服务器关机&#xff0c;第二天6点自动唤醒。 作用主要有4个&#xff1a; 1、防黑&#xff1a;上班时黑客很少攻击&#xff0c;容易被发现。下班了、睡了&#xff0c;是黑客攻击的主要时间段。晚上关机&#xff0c;就直接没法攻击了。 2、省电。 3、电脑开了一天…

三勾商城java多端+多店+新零售商城系统

三勾商城是开发友好的微信小程序商城&#xff0c;框架支持SAAS&#xff0c;支持发布 iOS Android 公众号 H5 各种小程序&#xff08;微信/支付宝/百度/头条/QQ/钉钉/淘宝&#xff09;等多个平台&#xff0c;不可多得的二开神器&#xff0c; 为大中小企业提供极致的移动电子…

FlutterUnit 周边 | 深入分析 iOS 手势回退问题

theme: cyanosis 1. 问题的出现 由于之前一直在 Android 机子上测试&#xff0c;没在 iOS 上跑过。最近 FlutterUnit 发布了 iOS 版本&#xff0c;收到了最多的反馈就是&#xff1a;返回滑动 失效。 起初我以为只是 WillPopScope 的锅&#xff0c;但我发现&#xff0c;很多普通…

多元回归预测 | Matlab基于遗传算法(GA)优化径向基神经网络(GA-RBF)的数据回归预测,多变量输入模型

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 多元回归预测 | Matlab基于遗传算法(GA)优化径向基神经网络(GA-RBF)的数据回归预测,多变量输入模型 评价指标包括:MAE、RMSE和R2等,代码质量极高,方便学习和替换数据。要求2018版本及以上。 部分源码 %% 清空…

java的BigDecimal操作

1.保留两位小数不进位 public static void main(String[] args) {BigDecimal bigDecimal1 new BigDecimal("1234.8888");String bigDecimal1s bigDecimal1.setScale(2, RoundingMode.DOWN).toPlainString();System.out.println(bigDecimal1s);}结果&#xff1a; …

为什么不建议项目中使用触发器

1.什么是触发器 触发器&#xff08;trigger&#xff09;是一种数据库对象&#xff0c;可以看作由事件来触发的特殊存储过程。当一个特定的事件发生时&#xff0c;会自动执行在数据库表上的某些操作&#xff0c;比如当对一个表进行操作&#xff08;insert&#xff0c;delete&am…