问题描述
我有一个从 firebase 读取数据并将读数发送到模型以获取响应的服务类。但是,问题是当我退出应用程序时服务被破坏了。
注意事项:
^ 写此笔记以防万一
我找了已经问过的问题,没有人解决我的问题。
我必须在退出应用程序时让服务运行
清单文件:
<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。