软件工程日报——安卓stuio自动检索数据库

Posted jiacheng-712

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件工程日报——安卓stuio自动检索数据库相关的知识,希望对你有一定的参考价值。

今天进行整合时,发现安卓端的自动检索数据库进行弹窗的功能还没没有进行解决

以下是在网上找到的思路

创建一个名为DatabaseChecker的线程,在其中实现与MySQL数据库的连接、执行检索代码、比较数据变化、推送通知窗口等功能。在该线程的run()方法中,将会不断执行定时检索代码。

public class DatabaseChecker extends Thread 
    private Context context;
    private boolean running = false;
    private Timer timer;

    public DatabaseChecker(Context context) 
        this.context = context.getApplicationContext();
    

    public synchronized void startChecking() 
        if (!running) 
            running = true;
            timer = new Timer();
            timer.schedule(new MyTimerTask(), 0, 10000);
        
    

    @Override
    public synchronized void run() 
        while (running) 
            // 执行数据库检索代码
            checkDataUpdate();
            try 
                Thread.sleep(10000);
             catch (InterruptedException e) 
                e.printStackTrace();
            
        
    

    public synchronized void stopChecking() 
        if (running) 
            running = false;
            timer.cancel();
        
    

    private class MyTimerTask extends TimerTask 
        @Override
        public void run() 
            // 执行数据库检索代码
            checkDataUpdate();
        
    

    private void checkDataUpdate() 
        // 执行MySQL查询代码
        ResultSet newResult = queryDataFromMysql();
        if (newResult == null) 
            return;
        
        if (oldResult == null) 
            oldResult = newResult;
            return;
        
        try 
            if (!oldResult.next() && !newResult.next()) 
                return;
            
            if (oldResult.next() != newResult.next()) 
                // 数据库数据发生变化,推送弹窗
                NotificationCompat.Builder builder =
                        new NotificationCompat.Builder(context, "channel_id")
                                .setSmallIcon(R.drawable.ic_notification)
                                .setContentTitle("数据更新提示")
                                .setContentText("数据库中的数据已更新")
                                .setPriority(NotificationCompat.PRIORITY_DEFAULT);

                NotificationManagerCompat notificationManager =
                        NotificationManagerCompat.from(context);

                // notificationId是应用程序中的通知唯一标识符
                notificationManager.notify(notificationId, builder.build());
            
            oldResult = newResult;
         catch (SQLException e) 
            e.printStackTrace();
        
    

DatabaseChecker类中,queryDataFromMysql()方法的实现可以参考下面的步骤。

  1. 在主界面中启动检索线程

在 MainActivity 的 onCreate() 方法中启动 DatabaseChecker线程,如下所示:

public class MainActivity extends AppCompatActivity 
    private DatabaseChecker databaseChecker;

    @Override
    protected void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        databaseChecker = new DatabaseChecker(this);
        databaseChecker.startChecking();
    

    @Override
    protected void onDestroy() 
        super.onDestroy();
        databaseChecker.stopChecking();
    

  1. 解析数据库检索结果

checkDataUpdate()方法中对检索结果进行解析,将当前和上一次的结果进行比较。在第一次检索时,可以将oldResult字段设为null,以便在后续的检索中不会将第一条记录误判成更新数据。

private ResultSet oldResult;

private ResultSet queryDataFromMysql() 
    ResultSet result = null;
    try 
        Class.forName("com.mysql.jdbc.Driver");
        Connection connection = DriverManager.getConnection(
                "jdbc:mysql://MySQL服务器名称:端口号/数据库名称",
                "数据库用户名", "数据库密码");
        String sql = "select * from 数据表名称";
        Statement statement = connection.createStatement();
        result = statement.executeQuery(sql);
        statement.close();
        connection.close();
     catch (ClassNotFoundException | SQLException e) 
        e.printStackTrace();
        Toast.makeText(getApplicationContext(), "连接数据库失败", Toast.LENGTH_SHORT).show();
    
    return result;

极客日报:恶意软件感染超1000万台安卓设备;淘宝App已支持“云闪付”付款;OpenSSH 8.8发布

一分钟速览新闻点!

  • OPPO在德国反诉诺基亚专利侵权
  • 抖音支持外放音量过高提醒功能
  • 淘宝App已支持“云闪付”付款
  • 理想汽车称玻璃存在自动开裂可能性
  • 阿里申请“阿里元宇宙”“淘宝元宇宙”等商标
  • 苹果AirTag“丢失模式”出现漏洞
  • 恶意软件感染超1000万台安卓设备
  • 苹果CEO库克获255万股股票奖励,价值3.68亿美元
  • 脸书暂停开发Ins儿童版
  • 三星因抬高电视价格被罚款3900万欧元
  • OpenSSH 8.8 发布
  • jQuery UI 1.13.0-rc.3 发布

国内要闻

OPPO在德国反诉诺基亚专利侵权

继9月初OPPO在中国和欧洲反诉诺基亚专利侵权之后,日前OPPO再次在德国曼海姆法院对诺基亚提起多件专利侵权诉讼。涉案专利均为5G标准必要专利,这也是OPPO继9月初对诺基亚发起多件专利侵权诉讼之后,继续加码反制诺基亚的诉讼行动。(集微网)

抖音支持外放音量过高提醒功能

抖音上线外放音量过高提醒功能。用户在移动数据或热点环境下外放抖音视频且音量过高时,则会触发“当前音量较大”的提醒,用户可通过“降低音量”按钮快速调低音量。抖音相关负责人表示:“我们倡议大家在出行路上、公共场合合理使用手机,避免外放音量过高影响他人。”

淘宝 App 已支持“云闪付”付款

蚂蚁集团董事长兼CEO井贤栋在世界互联网大会表示,开放共享是数字化发展的基本精神。随即不久,有用户反映称支付宝已将淘系支付场景开放给银联云闪付。据悉,支付宝8月已完成接入云闪付的研发,出于系统链路稳定性考虑,目前正在逐步放开支付场景。首先放开的交易场景是淘宝,安装云闪付APP的用户,在淘宝购物提交订单后,即可在支付宝收银台直接选择“云闪付”支付。(新浪新闻)

理想汽车称玻璃存在自动开裂可能性

近日,理想车主反映其挡风玻璃存在重大质量缺陷,有人甚至一年换三次。理想客服对挡风玻璃质量问题作出回应:不排除存在质量问题的可能性,此外太阳晒过后用凉水激,冬天用热水给玻璃擦可能会裂,并表示如挡风玻璃出现问题先去检查,是质量问题可以去找售后。

阿里申请“阿里元宇宙”“淘宝元宇宙”等商标

阿里巴巴新加坡控股有限公司申请注册“阿里元宇宙”、“淘宝元宇宙”等商标,国际分类 9类科学仪器、41类教育娱乐等,目前商标状态为注册申请中。此前腾讯也申请了一系列“元宇宙”商标。

国际要闻

苹果AirTag“丢失模式”出现漏洞

据KrebsOnSecurity分享的一份新报告称,苹果允许任何人使用智能手机扫描丢失的AirTag,以定位所有者的联系信息,这一功能可能被滥用,用于网络钓鱼欺诈。据悉,丢失模式可被计算机代码注入字段,扫描AirTag的人可以被重定向到虚假的iCloud登录页面或其他恶意网站。

恶意软件感染超1000万台安卓设备

安全研究机构Zimperium发现了新的安卓恶意软件GriftHorse,它可以欺骗用户并且订阅高级短信服务。据悉,GriftHorse恶意软件已经感染了70多个国家超过1000多万台安卓设备。操作该恶意软件的团伙每月收入在150万至400万美元之间。

苹果CEO库克获255万股股票奖励,价值3.68亿美元

据报道,苹果公司CEO蒂姆·库克(Tim Cook)日前再获得250多万股公司股票,价值近3.68亿美元。去年9月,苹果向库克发放了股票和基于业绩的奖励:到2026年,库克将获得超过100万股苹果股票。上个月,库克获得了500多万苹果股票。当时,库克以超过7.5亿美元的价值将其出售。这些股票是库克10年前出任苹果CEO时,所获得的薪酬方案的最后一部分。(新浪科技)

脸书暂停开发Ins儿童版

“Instagram 儿童版”是Instagram今年5月份公布的开发计划。这是一个为拥有手机但无法访问Instagram的青少年开发的照片分享应用程序。这款应用计划设计一个没有广告或广告跟踪的版本,并且只有“适合这个年龄段”的内容。不过,美国44个州的总检察长随即敦促Instagram放弃该计划,称社交媒体可能影响儿童的健康成长。(环球时报)

三星因抬高电视价格被罚3900万欧元

当地时间9月29日,根据荷兰时报的报道,荷兰消费者和市场管理部门向三星集团开出了3900万欧元的罚单。因为三星集团在2013年到2018年间通过干涉在线经销商,抬高了三星电视的价格,致使荷兰消费者利益受到了损失。(央视新闻)

程序员专区

OpenSSH 8.8 发布

OpenSSH 是一个100%完整的SSH 2.0协议的实现,包括sftp客户端和服务器的支持。OpenSSH 8.8的更新内容包括:允许ssh_config(5) CanonicalizePermittedCNAMEs指令接受 “none” 参数,以指定默认的行为;当使用 SFTP协议时,在发生传输错误后继续传输文件时,更好地匹配原始scp/rcp行为; 修正了多路复用中的一些内存泄漏问题; 避免在使用-Y find-principals 命令时崩溃;一系列文档和手册的改进等。

更新详情查看链接:https://seclists.org/oss-sec/2021/q3/187

jQuery UI 1.13.0-rc.3 发布

jQuery UI 1.13.0-rc.3已发布,与几周前发布的rc2相比,此版本的唯一变化是针对主题的修复。由于CSS的特殊性问题,1.13.0-rc.2中的空白图标实际上并不是空白的;rc3增加了一个相关选择器的权重 (specificity) 来解决这个问题。另一组问题也是由对主题的改动而引起的,这些改动本意是修复其他问题以及改进各种主题的外观。不幸的是,因为这些改动并不完整,因此导致了更大的问题。鉴于jQuery UI的维护状态,开发团队决定回滚这些改动。此外,开发者也可以更轻松地从 jQuery UI 1.12升级到1.13。

更新详情查看链接:https://github.com/jquery/jquery-ui/tree/1.13.0-rc.3

以上是关于软件工程日报——安卓stuio自动检索数据库的主要内容,如果未能解决你的问题,请参考以下文章

极客日报:恶意软件感染超1000万台安卓设备;淘宝App已支持“云闪付”付款;OpenSSH 8.8发布

软件工程日报——项目整合

2023年4月14日(软件工程日报)

2023年4月19日(软件工程日报)

软件工程博客---小学期--日报2

需要安卓自动短信检索器的API格式的短信