【问题标题】:what approach should i follow to make Timer service in android我应该遵循什么方法在android中制作定时器服务
【发布时间】:2020-10-06 08:36:04
【问题描述】:

我正在开发一个间隔计时器,它会在每个间隔(例如 30 分钟)发出警报。 我想让计时器在后台或设备处于睡眠状态时工作并显示通知, 我被告知要使用 Intent Service,但它已被弃用。我应该用什么? -我想支持到 API 21

【问题讨论】:

    标签: java android android-workmanager android-intentservice


    【解决方案1】:

    您需要创建一个BroadcastReceiver。例如,使用 AlarmManager:

    int repeatTime = 30;  //Repeat alarm time in seconds
    AlarmManager processTimer = (AlarmManager)getSystemService(ALARM_SERVICE);
    Intent intent = new Intent(this, processTimerReceiver.class);   
    PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0,  intent, 
    PendingIntent.FLAG_UPDATE_CURRENT);
    //Repeat alarm every second
    processTimer.setRepeating(AlarmManager.RTC_WAKEUP, 
    System.currentTimeMillis(),repeatTime*1000, pendingIntent); 
    

    并创建您的 processTimerReciever 类:

    //This is called every second (depends on repeatTime)
    public class processTimerReceiver extends BroadcastReceiver{
    
        @Override
        public void onReceive(Context context, Intent intent) {
            //Do something every 30 seconds
        }
    }
    

    记得注册到Manifest

    <receiver android:name="processTimer" >
       <intent-filter>
           <action android:name="processTimerReceiver" >
           </action>
       </intent-filter>
    </receiver>
    

    编辑:

    如果您的应用使用互联网连接,您可以使用 Firebase 每 30 分钟发送一次通知

    【讨论】:

    • 如果我的回答有帮助,您可以使用箭头按 +1。
    猜你喜欢
    • 1970-01-01
    • 2016-09-11
    • 1970-01-01
    • 2017-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-25
    • 1970-01-01
    相关资源
    最近更新 更多