【问题标题】:AndroidAlarmManagerPlus not starting automatically after rebootAndroidAlarmManagerPlus 重启后不会自动启动
【发布时间】:2021-08-17 13:16:41
【问题描述】:

我在 AndroidManifest.xml 文件中设置了权限

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

我还在文档中指定的 AndroidManifest.xml 中添加了以下几行

<service
    android:name="dev.fluttercommunity.plus.androidalarmmanager.AlarmService"
    android:permission="android.permission.BIND_JOB_SERVICE"
    android:exported="false"/>
<receiver
    android:name="dev.fluttercommunity.plus.androidalarmmanager.AlarmBroadcastReceiver"
    android:exported="false"/>
<receiver
    android:name="dev.fluttercommunity.plus.androidalarmmanager.RebootBroadcastReceiver"
    android:enabled="false">
    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED"></action>
    </intent-filter>
</receiver>

在我的 main.dart 文件中,我有以下几行代码...

import 'package:android_alarm_manager_plus/android_alarm_manager_plus.dart';
void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await AndroidAlarmManager.initialize();
  runApp(MyApp());
  await AndroidAlarmManager.periodic(Duration(minutes: 1), 0, syncData);
}
void syncData() async {
  print("synching data");
  String? uploadedUrl = await S3.uploadToS3();
  print(uploadedUrl);
}

我应该添加什么才能让它在重新启动时自动工作? TIA :)

【问题讨论】:

    标签: flutter dart flutter-packages


    【解决方案1】:

    从 Android 8.0 开始你不能使用大部分隐式广播, 所以你的应用程序服务不会启动 ACTION_LOCKED_BOOT_COMPLETEDACTION_BOOT_COMPLETED

    for more details

    您可以改用 WorkManager 将数据同步到服务器 here is a good example

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-17
      • 1970-01-01
      • 2020-09-20
      相关资源
      最近更新 更多