0

我需要在我的 Android 应用程序中实现以下功能:触发定期服务的切换按钮。

让我以更好的方式提出这个问题:我想要一个具有“开启”模式的切换按钮。在这种模式下,我想定期启动一个服务(例如每 5 分钟)。在“关闭”模式下,定期服务被禁用。我想我需要使用 AlarmManager 服务。

你能给我提供指导方针(如果可能的话,附上代码)或一个很好的教程来做到这一点?

预先感谢

4

1 回答 1

0

私人警报管理器警报管理器;私有的 PendingIntent

使用此创建的方法在单击切换按钮时打开和关闭服务。还要确保使用 AlarmManager 作为单例。

private void setService() {

                try {
                    if (alarmManager != null) {
                        alarmManager.cancel(pendingIntent);
                    }
                } catch (Exception e) {

                    e.printStackTrace();
                }
                Intent intent = new Intent(this, MyBroadCastReceiver.class);

                pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0);

                alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); //
                        // 60 seconds i.e 1 min 
                long time = 60 * 1000;

                alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,
                        SystemClock.elapsedRealtime() + time, time, pendingIntent);

            }

要删除 serviceUpdates,请使用以下方法:

 private void removeService() {
            try {
                if (alarmManager != null) {
                    alarmManager.cancel(pendingIntent);
                }
            } catch (Exception e) {
                // TODO: handle exception
                e.printStackTrace();
            }
        }

现在广播类应该如下所示:

public class MyBroadCastReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {


        Log.d("test_log", "broadcast worked ");

    }
}

现在是接收器的清单声明:

<receiver android:name=".MyBroadCastReceiver"></receiver>
于 2012-09-30T13:57:29.007 回答