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

Java 如何在退出应用程序时防止服务被破坏,java,android,service,ondestroy,Java,Android,Service,Ondestroy,我有一个服务类,它从firebase读取数据并将数据发送到模型以获得响应。但是,问题是,当我退出应用程序时,服务被破坏 注释: 我的服务在我登录时启动,在我注销应用时必须销毁 我的服务类包含broadcast receiver作为一个内部类来显示对话框,以防我从模型中获得所需的响应来显示自定义对话框 ^这张便条写得很好,以备不时之需 我寻找已经被问到的问题,没有人解决我的问题 当我退出应用程序时,我必须让服务运行 清单文件: <service android:name=".Mod

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

注释

  • 我的服务在我登录时启动,在我注销应用时必须销毁
  • 我的服务类包含broadcast receiver作为一个内部类来显示对话框,以防我从模型中获得所需的响应来显示自定义对话框
  • ^这张便条写得很好,以备不时之需

    我寻找已经被问到的问题,没有人解决我的问题

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

    清单文件:

    <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(){ }
        }
    }