退出应用程序时如何防止服务被破坏

问题描述

我有一个从 firebase 读取数据并将读数发送到模型以获取响应的服务类。但是,问题是当我退出应用程序时服务被破坏了。

注意事项

  1. 我的服务在我登录时启动,在我退出应用程序时必须销毁
  2. 我的服务类包含广播接收器作为内部类以显示对话框,以防我从模型获得所需的响应以显示自定义对话框。

^ 写此笔记以防万一

我找了已经问过的问题,没有人解决我的问题。

我必须在退出应用程序时让服务运行

清单文件

<service android:name=".ModelServiceM"
android:enabled="true"
android:exported="false" />

服务类:

public class ModelServiceM extends Service {
    
    Timer timer = new Timer();
    broadcastReceiver mReceiver;

    @Nullable
    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    @Override
    public void onCreate() {
      //skip this for Now
        /*IntentFilter filter = new IntentFilter();
        filter.addAction("action");
        mReceiver = new MyReceiver();
        registerReceiver(mReceiver,filter);*/
    }

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

        Log.d("message","onStartCommand Lunched");
        //things

            timer.schedule(new TimerTask() {
                public void run() {
                  
                  //things 
            },delay,period);


    //return START_STICKY;
        flags=START_STICKY;
    return super.onStartCommand(intent,flags,startId);

    }

    @Override
    public void onDestroy() {
        Log.d("message","onDestroy Lunched");
        timer.cancel();
        //unregisterReceiver(mReceiver);
        super.onDestroy(); } 


    // use this as an inner class like here or as a top-level class
    public class MyReceiver extends broadcastReceiver {

        @Override
        public void onReceive(Context context,Intent intent) {
            // do something
            Log.d("RECEIVER","onReceive lunched");
            //things
        }
        // constructor
        public MyReceiver(){ }
    }
}

解决方法

看看即使应用程序关闭,它们仍然存在的 ForegroundServices。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...