Android AlarmManager example with BroadcastReceiver
1. Create a BroadcastReceiver for receiving the pending intent from AlarmManager.
import android.widget.Toast import android.content.Intent import android.content.BroadcastReceiver import android.content.Context class MyAlarmReceiver: BroadcastReceiver() { override fun onReceive(context: Context, intent: Intent) { Toast.makeText(context, "Alarm Triggered", Toast.LENGTH_LONG).show() } }
2. Register the above BroadcastReceiver in the manifest file inside the application tag.
3. Creating the alarm manager and starting it in an Activity.
import android.support.v7.app.AppCompatActivity import android.os.Bundle import android.app.AlarmManager import android.content.Context import android.app.PendingIntent import android.content.Intent import kotlinx.android.synthetic.main.activity_main.* import java.util.* class MainActivity: AppCompatActivity() { private val REQUEST_CODE = 100 private lateinit var alarmManager: AlarmManager private lateinit var pendingIntent: PendingIntent override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) tv_current_time.text = Date().toString() // Creating the pending intent to send to the BroadcastReceiver alarmManager = getSystemService(Context.ALARM_SERVICE) as AlarmManager val intent = Intent(this, MyAlarmReceiver::class.java) pendingIntent = PendingIntent.getBroadcast(this, REQUEST_CODE, intent, PendingIntent.FLAG_UPDATE_CURRENT) // Setting the specific time for the alarm manager to trigger the intent, in this example, the alarm is set to go off at 23:30, update the time according to your need val calendar = Calendar.getInstance() calendar.timeInMillis = System.currentTimeMillis() calendar.set(Calendar.HOUR_OF_DAY, 23) calendar.set(Calendar.MINUTE, 30) // Starts the alarm manager alarmManager.setRepeating( AlarmManager.RTC, calendar.timeInMillis, AlarmManager.INTERVAL_DAY, pendingIntent ) } override fun onDestroy() { super.onDestroy() // Cancels the pendingIntent if it is no longer needed after this activity is destroyed. alarmManager.cancel(pendingIntent) } }
Search within Codexpedia
Custom Search
Search the entire web
Custom Search
Related Posts