Reputation: 11
I used flutter background service plug-in.Sometimes I getting crash. I don't know why it is happening? is there any solution?? I tried it by many ways..It's very critical.. I am using flutter_background_service 1.0.4 as background services as well as foreground services.
Fatal Exception: android.app.RemoteServiceException: Context.startForegroundService() did not
then call Service.startForeground(): ServiceRecord{67fd813 u0
com.example.sms_scheduler/id.flutter.flutter_background_service.BackgroundService}
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1797)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:176)
at android.app.ActivityThread.main(ActivityThread.java:6651)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:824)
This is my Code !!
void main() async{
await initializeService();
runApp(const MyApp());
}
Future<void> initializeService() async {
final service = FlutterBackgroundService();
await service.configure(
androidConfiguration: AndroidConfiguration(
onStart: onStart,
autoStart: true,
isForegroundMode: true,
),
iosConfiguration: IosConfiguration(
autoStart: true,
onForeground: onStart,
onBackground: onIosBackground,
),
);
}
void onIosBackground() {
WidgetsFlutterBinding.ensureInitialized();
print('FLUTTER BACKGROUND FETCH');
}
void onStart() {
if (Platform.isAndroid){PathProviderAndroid.registerWith();}
else if (Platform.isIOS){PathProviderIOS.registerWith();}
if (Platform.isIOS) FlutterBackgroundServiceIOS.registerWith();
if (Platform.isAndroid) FlutterBackgroundServiceAndroid.registerWith();
final service = FlutterBackgroundService();
service.onDataReceived.listen((event) {
if (event!["action"] == "setAsForeground") {
service.setAsForegroundService();
return;
}
if (event["action"] == "setAsBackground") {
service.setAsBackgroundService();
}
if (event["action"] == "stopService") {
service.stopService();
}
});
service.setAsBackgroundService();
Timer.periodic(const Duration(seconds: 05), (timer) async {
service.sendData(
{
"final_sms": sendFinalSMS(),
}
);
});
}
Upvotes: 0
Views: 1334
Reputation: 183
Why don't you use this
try{
//code that may throw an exception
}catch(Exception_class_Name ref){}
Upvotes: 0