热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

重复报警示例解析

本文详细介绍了如何在Android应用中实现重复报警功能。示例代码可在以下路径找到:https://developer.android.com/samples/RepeatingAlarm/index.html。首先,我们将从Manifest文件开始分析。
本文将详细介绍如何在Android应用中实现重复报警功能。示例代码可在以下路径找到:

https://developer.android.com/samples/RepeatingAlarm/index.html

首先,我们从Manifest文件开始分析。

android:label="@string/app_name"
android:icon="@drawable/ic_launcher"
android:theme="@style/AppTheme">

android:label="@string/app_name"
android:uiOptiOns="splitActionBarWhenNarrow">







该应用程序仅包含一个名为MainActivity的Activity。

在MainActivity的onCreate()方法中,添加了一个名为RepeatingAlarmFragment的Fragment。

```java
public static final String TAG = "MainActivity";

public static final String FRAGTAG = "RepeatingAlarmFragment";

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

if (getSupportFragmentManager().findFragmentByTag(FRAGTAG) == null) {
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
RepeatingAlarmFragment fragment = new RepeatingAlarmFragment();
transaction.add(fragment, FRAGTAG);
transaction.commit();
}
}

public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == R.id.sample_action) {
Intent intent = new Intent(getActivity(), MainActivity.class);
intent.setAction(Intent.ACTION_MAIN);
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);

PendingIntent pendingIntent = PendingIntent.getActivity(getActivity(), REQUEST_CODE,
intent, 0);

int alarmType = AlarmManager.ELAPSED_REALTIME;
final int FIFTEEN_SEC_MILLIS = 15000;

AlarmManager alarmManager = (AlarmManager)
getActivity().getSystemService(getActivity().ALARM_SERVICE);

// setRepeating 方法接受启动延迟时间和报警间隔作为参数。
// 下面的代码在15秒后触发,并每15秒重复一次。这在演示中非常有用,但在生产环境中非常糟糕。
alarmManager.setRepeating(alarmType, SystemClock.elapsedRealtime() + FIFTEEN_SEC_MILLIS,
FIFTEEN_SEC_MILLIS, pendingIntent);
Log.i("RepeatingAlarmFragment", "Alarm set.");
}
return true;
}
``` 如果用户点击了操作栏中的某个项,会创建一个新的PendingIntent来启动MainActivity。然后通过AlarmManager设置这个PendingIntent,使其每15000毫秒(即15秒)运行一次。也就是说,只要用户点击了这个项,MainActivity就会每15秒运行一次。

推荐阅读
author-avatar
菜牛
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有