repeatingalarm
来源:互联网 发布:js for循环中调用函数 编辑:程序博客网 时间:2024/06/10 00:57
这个例子在如下路径中.
https://developer.android.com/samples/RepeatingAlarm/index.html
先看manifest。
<application android:allowBackup="true"
android:label="@string/app_name"
android:icon="@drawable/ic_launcher"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity"
android:label="@string/app_name"
android:uiOptions="splitActionBarWhenNarrow">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
这个application只包含一个MainActivity的Activity。
MainActivity的onCreate()方法中添加了一个RepeatingAlarmFragment的fragment
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 takes a start delay and period between alarms as arguments.
// The below code fires after 15 seconds, and repeats every 15 seconds. This is very
// useful for demonstration purposes, but horrendous for production. Don't be that dev.
alarmManager.setRepeating(alarmType, SystemClock.elapsedRealtime() + FIFTEEN_SEC_MILLIS,
FIFTEEN_SEC_MILLIS, pendingIntent);
Log.i("RepeatingAlarmFragment", "Alarm set.");
}
return true;
}
如果用户点击了action的item,会新建一个PendingIntent来启动MainActivity。
然后会通过AlarmManager 来让这个pendingIntent,每15000ms运行一次
也就是说只要用户点击了这个item,MainActivity会每15000ms运行一次。
https://developer.android.com/samples/RepeatingAlarm/index.html
先看manifest。
<application android:allowBackup="true"
android:label="@string/app_name"
android:icon="@drawable/ic_launcher"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity"
android:label="@string/app_name"
android:uiOptions="splitActionBarWhenNarrow">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
这个application只包含一个MainActivity的Activity。
MainActivity的onCreate()方法中添加了一个RepeatingAlarmFragment的fragment
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 takes a start delay and period between alarms as arguments.
// The below code fires after 15 seconds, and repeats every 15 seconds. This is very
// useful for demonstration purposes, but horrendous for production. Don't be that dev.
alarmManager.setRepeating(alarmType, SystemClock.elapsedRealtime() + FIFTEEN_SEC_MILLIS,
FIFTEEN_SEC_MILLIS, pendingIntent);
Log.i("RepeatingAlarmFragment", "Alarm set.");
}
return true;
}
如果用户点击了action的item,会新建一个PendingIntent来启动MainActivity。
然后会通过AlarmManager 来让这个pendingIntent,每15000ms运行一次
也就是说只要用户点击了这个item,MainActivity会每15000ms运行一次。
0 0
- repeatingalarm
- rsa加密 java
- Idea Error:java: System Java Compiler was not found in classpath:
- JavaWeb笔记-Servlet
- Linux内核移植--开机logo
- C#不允许使用循环语句、条件语句,在控制台中打印出1-1000这1000个数
- repeatingalarm
- Dijkstra-解决最短路径问题
- Mybatis中的模糊查询(like)
- 1000 倍快于 R-CNN的 YOLO
- android studio自动注释
- 第一条博客
- 湖南省赛 B - Boxes in a Line 模拟循环链表
- Cordova支付宝插件的那些坑
- javascript数组的一些方法(二)