temz 2023-03-01 20:41 采纳率: 100%
浏览 63
已结题

APP常驻通知栏保活

android常驻通知栏能保活吗?比如我在service里面写了socket-tcp连接,想要一直保持这个连接不中断,中断自动连接,但是怕在息屏或使用其他app的时候系统关闭程序,这时用常驻通知栏能保证app不被关闭,并保持socket连接吗?

这是我服务里面写的

<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />

xml的也加了,现在报 Bad notification for startForeground

 @Override
    public int onStartCommand(Intent intent, int flags, int startId) {

        /*拿到传递过来的ip和端口号*/
        ip = intent.getStringExtra("IP");
        port =intent.getIntExtra("PORT",0) ;

        Notification notification = new NotificationCompat.Builder(this, "1")
                .setContentTitle("My App")
                .setContentText("Running...")
                .setSmallIcon(R.drawable.ic_launcher_background)
                .setPriority(NotificationCompat.PRIORITY_LOW)
                .build();
        startForeground(NOTIFICATION_ID, notification);

        /*初始化socket*/
        initSocket();

       flags = Service.START_FLAG_REDELIVERY;
        return super.onStartCommand(intent, flags, startId);
    }

  • 写回答

6条回答 默认 最新

  • ThesisMaster 2023-03-03 12:40
    关注

    在 Android 中,常驻通知栏可以帮助应用程序保持运行,但并不能完全保证应用程序不被系统关闭。即使应用程序运行在前台,如果系统资源不足,系统也可能会关闭应用程序,这通常发生在用户长时间不使用应用程序时。
    不过,使用常驻通知栏确实可以增加应用程序被系统关闭的概率。因为在 Android 中,常驻通知栏会被认为是一个重要通知,系统会尽可能让这个应用程序保持运行。此外,常驻通知栏还可以让用户随时知道应用程序正在后台运行,从而增加用户对应用程序的信任感和满意度。
    在您的情况下,如果您想要保持 Socket TCP 连接不中断,可以将 Socket 连接的代码放在 Service 中,并使用常驻通知栏来保持 Service 运行。但是,您还需要考虑一些问题,如电池寿命和用户体验等。如果您的应用程序需要长时间运行,可能会消耗大量的电池和系统资源,这可能会影响用户体验。所以,建议您在实现时要进行一些优化和限制,以确保应用程序的可靠性和用户体验。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月9日
  • 已采纳回答 3月9日
  • 修改了问题 3月2日
  • 修改了问题 3月2日
  • 展开全部

悬赏问题

  • ¥15 远程桌面文档内容复制粘贴,格式会变化
  • ¥15 关于#java#的问题:找一份能快速看完mooc视频的代码
  • ¥15 这种微信登录授权 谁可以做啊
  • ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
  • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
  • ¥15 网络设备配置与管理这个该怎么弄
  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题