Soru & Cevap

BOOT_COMPLETED i nasıl çalıştıracağımı bulamadım. ...

09.12.2019 - 07:46

Gün içinde 3 adet bildirim gönderen bir uygulama yaptım. Ancak telefon kapanıp açıldığında yada yeniden başlatıldığında AlarmManager ile kurduğum alarmlar iptal oluyor. Ben telefon açıldığında alarmları yeniden kurmak istiyorum ancak bir türlü yapamadım. Sizce sebebi ne olabilir.

AlarmService çalışıyor uygulama içinden çalıştırıyorum hiç bir sorun olmuyor.

AndroidManifest.XML

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.atabassoft.aswim">

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

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:networkSecurityConfig="@xml/network_security_config"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

        <activity android:name=".InstallActivity" />
        <activity android:name=".SendItemActivity" />
        <activity android:name=".SettingsActivity" />
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <receiver android:name=".BootReceiver" android:enabled="true" android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.REBOOT"/>
                <action android:name="android.intent.action.BOOT_COMPLETED"/>
            </intent-filter>
        </receiver>
        <receiver android:name=".AlarmReceiver" android:enabled="true" android:exported="true" />

        <service android:name=".GetItemService" android:enabled="true" android:exported="true" />
        <service android:name=".SetAlarmService" android:enabled="true" android:exported="true" />
    </application>

</manifest>

BootReceiver

class BootReceiver : BroadcastReceiver(){
    override fun onReceive(context: Context, intent: Intent) {

        if(Intent.ACTION_BOOT_COMPLETED == intent.action){

                val nIntent = Intent(context, SetAlarmService::class.java)
                context.startService(nIntent)

        }

    }
}

SetAlarmService

class SetAlarmService : Service() {
    override fun onBind(intent: Intent?): IBinder? {
        return null
    }

    override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
        AswFunctions().setAlarm(applicationContext)
        return super.onStartCommand(intent, flags, startId)
    }
}

 

5 Görüntülenme

0 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.