无法使用 AlarmManager 类启动我的服务

问题描述 投票:0回答:0

我正在实现一个 android 应用程序,我想在其中启动设备后使用 alarmManager 启动服务。但是启动后,alarmManager 被执行但我的服务正在运行。我怎么解决它?这是我实施的:

In the manifest :  

        <receiver
            android:name=".Services.OnBootBroadcast"
            android:enabled="true"
            android:exported="true"
            android:permission="android.permission.BROADCAST_SMS">
            <intent-filter android:priority="1000">
                <action android:name="android.intent.action.BOOT_COMPLETED" />
                <action android:name="android.provider.Telephony.SMS_RECEIVED" />
                <action android:name="android.intent.action.PHONE_STATE" />
                <action android:name="android.intent.action.ACTION_EXTERNAL_APPLICATIONS_AVAILABLE" />
                <action android:name="android.intent.action.QUICKBOOT_POWERON" />

            </intent-filter>
        </receiver>


//My broadcast receiver class 
public class OnBootBroadcast extends BroadcastReceiver {
            @Override
            public void onReceive(Context context, Intent intent) {
                if (intent.getAction().equalsIgnoreCase(Intent.ACTION_BOOT_COMPLETED)) {
                    // Start your service here
                   // Toast.makeText(context, "The phone is onBoot mode", Toast.LENGTH_SHORT).show();
                    AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);

                    // Create an intent that will be used to trigger the alarm event
                    Intent alarmIntent = new Intent(context, TimeService.class);

                    // Create a PendingIntent object using the PendingIntent.getBroadcast() method
                    PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, alarmIntent, 0);

                    // Set the alarm using the AlarmManager.set() method
                    long alarmTime = System.currentTimeMillis() + 60000; // Trigger alarm after 1 minute
                    long interval = 10 * 60 * 1000; // Repeat every 10 minutes
                    alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, 5000, interval, pendingIntent);
                    Log.d("TAG", "onReceive: the alarm is being triggered");
                }
            }
        }
java alarmmanager
© www.soinside.com 2019 - 2024. All rights reserved.