- 浏览: 376478 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
longxishui12:
这个一定要顶得高高的。
[Android UI界面] android中仿iphone实现listview的反弹效果 -
klower.jiang:
Good job, Thank you so much!
能够兼容ViewPager的ScrollView -
ZSRTFAT:
...
file size 的大小计算
AlarmManager
手动设定手机的显示时间,只要大于或者等于AlarmManager 定的下次扫描时间就会触发闹钟
重复启动activity;
Intent intent = new Intent(context, TestActivity.class); intent.putExtra("type", type); PendingIntent pi = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); AlarmManager alarmManager = (AlarmManager) context.getSystemService(context.ALARM_SERVICE); alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 500, pi);
定时启动 :
long time = "--------"; Intent intent = new Intent(TestReceiver.ACTION_ACTION); PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent , PendingIntent.FLAG_UPDATE_CURRENT); AlarmManager alarm = (AlarmManager) context .getSystemService(Context.ALARM_SERVICE); alarm.set(AlarmManager.RTC, time, pendingIntent);
取消定时:
Intent intent = new Intent(context, TestActivity.class); intent.putExtra("type", type); PendingIntent pi = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); AlarmManager alarmManager = (AlarmManager) context.getSystemService(context.ALARM_SERVICE); alarmManager.cancel(pi);
time 重复启动:没隔1秒启动。
public void time (){ startTimeMilin = Calendar.getInstance().getTimeInMillis()+30*60*1000; Timer timer = new Timer (); timer.schedule(new TestTimerTask(), 0, 1000); } class TestTimerTask extends TimerTask{ @Override public void run() { runOnUiThread(new Runnable() { public void run() { long leftTimesMilin = startTimeMilin-Calendar.getInstance().getTimeInMillis(); long minitue = leftTimesMilin/1000/60; long seconds = leftTimesMilin/1000%60; String minStr = ""; String secdStr = ""; if (minitue<10) { minStr = "0"+minitue; } else { minStr = ""+minitue; } if (seconds<10) { secdStr = "0"+seconds; } else { secdStr = ""+seconds; } btn.setText(minStr+":"+secdStr); if(minitue<=0&&seconds<=0){ btn.setText("btn"); isBtnEnable = true; if(mTimer!=null){ mTimer.cancel(); mTimer = null; } } } }); } }
定时启动:1秒中后启动,
Timer timer2 = new Timer(); timer2.schedule(new TimerTask() { @Override public void run() { // TODO Auto-generated method stub } },1000);
在service中重复启动:
Button bt1 = (Button) findViewById(R.id.bt1); bt1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Log.d("test", "___" + isTopActivy()); ComponentName comp = new ComponentName("com.android.phone", "com.android.phone.EmergencyDialer"); Intent intentM = new Intent(); intentM.setComponent(comp); startActivity(intentM); Intent intent = new Intent(); intent.setClass(PhoneDemoActivity.this, PhoneService.class); // intent.setAction(PhoneService.LOCK); intent.setAction(PhoneService.LOCK_TIME); startService(intent); } });
public class PhoneService extends Service { public static final String LOCK = "SET_LOCK" ; public static final String CANCEL_LOCK = "CANCEL_LOCK" ; LockViewTimerTask task ; private Timer timer ; public static final String LOCK_TIME = "TIME_LOCK" ; @Override public IBinder onBind(Intent arg0) { return null; } @Override public void onCreate() { super.onCreate(); } @Override public void onDestroy() { super.onDestroy(); } @Override public void onStart(Intent intent, int startId) { super.onStart(intent, startId); if(intent != null){ String action = intent.getAction(); Log.d("test", "action_" + action); if(action.equals(LOCK)){ setAlarm(); String phoneEm = isTopActivy(); String pStr = "ComponentInfo{com.android.phone/com.android.phone.EmergencyDialer}" ; String lStr = "ComponentInfo{com.phone/com.phone.PhoneDemoActivity}" ; String launch2 = "ComponentInfo{com.android.launcher/com.android.launcher2.Launcher}" ; // if(phoneEm.equals(launch2)){ if(phoneEm.equals(pStr) || phoneEm.equals(lStr)){ }else { Intent intent2 = new Intent(); intent2.setClass(this, PhoneDemoActivity.class); intent2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent2); } Log.d("test", "!phoneEm.equals(phoneEm)_" + !phoneEm.equals(phoneEm)); Log.d("test", "!phoneEm.equals(lStr)_" + !phoneEm.equals(lStr)); Log.d("test", "phoneEm_" + phoneEm); }else if(action.equals(CANCEL_LOCK)){ cancelAlarm(); }else if(action.equals(LOCK_TIME)){ setTask(); } } } private int i = 0; private int j = 0; private void setAlarm(){ Log.d("test", "setAlarm_" + i++); Intent i = new Intent(); i.setClass(this, PhoneService.class); i.setAction(LOCK); PendingIntent pi = PendingIntent.getService(this, 0, i, 0); AlarmManager alarmMgr = (AlarmManager)getSystemService(ALARM_SERVICE); alarmMgr.setRepeating(AlarmManager.RTC_WAKEUP,System.currentTimeMillis() + 500,500, pi); } private void cancelAlarm(){ Log.d("test", "cancelAlarm_" + j++); Intent i = new Intent(); i.setClass(this, PhoneService.class); i.setAction(LOCK); PendingIntent pi = PendingIntent.getService(this, 0, i, 0); AlarmManager alarmMgr = (AlarmManager)getSystemService(ALARM_SERVICE); alarmMgr.cancel(pi); } /***/ public String isTopActivy(){ ActivityManager manager = (ActivityManager) getSystemService(ACTIVITY_SERVICE); List<RunningTaskInfo> runningTaskInfos = manager.getRunningTasks(1); String cmpNameTemp = null; if(null != runningTaskInfos){ cmpNameTemp = (runningTaskInfos.get(0).topActivity).toString(); // Log.e("cmpname","cmpname:"+cmpNameTemp); } return cmpNameTemp; } private void setTask(){ timer = new Timer(); task = new LockViewTimerTask(); timer.schedule(task, 0, 500); } class LockViewTimerTask extends TimerTask{ @Override public void run() { String componentInfo = "ComponentInfo{com.android.phone/com.android.phone.EmergencyDialer}"; String lostInofString = "ComponentInfo{com.phone/com.phone.PhoneDemoActivity}"; String topA = isTopActivy(); Log.d("test","__________topA" + topA); boolean bn = topA.equals("ComponentInfo{com.android.phone/com.android.phone.EmergencyDialer}") ; if(topA.equals(componentInfo)){ }else if(topA.equals(lostInofString)){ timer.cancel(); task.cancel(); }else { Intent intent = new Intent(); intent.putExtra("type", 3); intent.setClass(PhoneService.this, PhoneDemoActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); timer.cancel(); task.cancel(); } } } }
发表评论
-
drawable
2012-04-26 10:58 4001drawable 一些总结: http://www.c ... -
file size 的大小计算
2012-04-25 18:21 11197file size 的大小计算: String an ... -
SpannableStringBuilder
2012-04-25 17:34 4880设置指定文字颜色: String str = &quo ... -
sdcark卡。
2012-04-24 16:53 815转载:http://www.cnblogs.com/Terry ... -
android读写文件
2012-04-22 17:16 890一、 从resource中的raw文件夹中获 ... -
读取assessts的txt
2012-04-22 17:14 906try { // Return an Asset ... -
android 应用程序Activity之间数据传递与共享的几种途径
2012-04-21 22:09 947转载:http://blog.csdn.net/u0fly/a ... -
android 界面布局 很好的一篇总结 【转】
2012-04-19 16:17 1223转载:http://www.eoeandroid. ... -
activity以dialog形式显示
2012-04-11 17:41 62951、AndroidManifest.xml 文件中,申明 ac ... -
Android开发神贴整理
2012-04-06 14:36 731Android开发神贴整理 http://www.apkbu ... -
Google Android开发精华教程(apkbus整理)
2012-04-06 14:35 762转载 Google Android开发精华教程 ... -
使用Iterator 或for-each注意:java.util.ConcurrentModificationException
2012-04-05 16:37 860使用Iterator 或for-each注意:java.ut ... -
分享45个源码
2012-03-31 09:58 813http://www.apkbus.com/android-2 ... -
不显示近期任务
2012-03-28 17:11 1531manifest中设置activity为: (在长按HOME键 ... -
获取SD卡中的apk信息
2012-03-21 15:22 1150转自: http://hi.baidu.com/jeremy ... -
遮罩效果。
2012-03-15 16:53 873来自: http://www.ligotop.com/201 ... -
收藏Android下bitmap内存限制OUT OF MEMORY的方法
2012-03-15 16:15 1536收藏Android下bitmap内存限制OUT OF M ... -
android课程
2012-03-14 15:40 709http://www.mobidever.com/course ... -
获得联系人
2012-03-14 11:56 1032String contactId ; privat ... -
学习网站
2012-03-06 18:10 677http://www.cyqdata.com/android/ ...
相关推荐
android AlarmManager 多个 定时 重复提醒,我这篇博文的源码。
app进程中,需要实现一个定时任务,只要设备处于开机状态,每隔半个小时,就需要定时向服务器上传一次位置信息,并且只要是有网络和获取到GPS信号,进程不能死,如果进程死掉了,需要自动重启。
这篇文章使用AlarmManager实现了Android定时后台循环任务。使用场景:项目需要app每隔一段时间就去服务端请求一次接口,从而更新本地保存的信息。 AlarmManager简介 AlarmManager是Android中常用的一种系统级别的...
使用AlarmManager多次定时提醒 实现多次定时提醒的原理是: 在添加时间点后, 需要将所添加的时间点保存在文件或数据库中。
本文将讲解一下如何使用AlarmManager实现定时提醒功能。 闹钟配置 周期闹钟 Intent intent = new Intent(); intent.setAction(GlobalValues.TIMER_ACTION_REPEATING); PendingIntent sender = PendingIntent....
1.实现Push推送demo,用AlarmManager实现全局定时和Timer、TimerTask两种方式分别实现定时服务状态栏Notification消息提醒! 2.该功能经过测试,只需要从服务上定时获取到提醒消息即可,稍做修改,即可使用。 3.可以...
AlarmManager定时设置提醒,发送通知
android中定时有很多种是实现,常见的Handler 与Thread的结合,handler.postDelayed ,以及要使用的AlarmManger 等都可以实现定时任务的执行,但是使用场景却大不相同,这里主要是怎么用AlarmManager实现定时任务。...
一个AlarmManger 多次定时提醒 代码压缩包
在Android平台,如何使用AlarmManager启动广播BroeadReceiver 、服务Service 、页面Activity。
利用闹钟alarmmanager来定时的发送通知,在通知栏显示,点击后跳转到指定activity
由于锁屏后CPU休眠,导致心跳包线程被挂起,所以尝试使用alarmManager定时唤醒Service发送心跳包。 以下是开启alarmManager的代码 //开启轮询服务 public static void startPollingService(Context context, int...
Xamarin.Android通过闹钟(AlarmManager)实现定时提供的功能。同时通过广播的方式实现闹钟的监听,并通过回调方法实现事件的触发。
实现的功能:设置定时任务,按时控制手机的情景模式。 特色:代码注释详细,绝对能看懂。 须知:想让程序准确无误的按时执行,请允许后台运行。 还有细节需要优化。
根据本讲学习内容,学会运用AlarmManager和PendingIntent实现定时提醒功能。 (1) 提交的作业包中含有应用程序运行效果截图。
本示例通过AlarmManager 全局定时器 实现 定时更换壁纸
使用AlarmManager实现Android定时任务(闹钟),解决了Android版本更新导致的定时不准确问题。Demo源码
先说下需求吧, 这个是服务器端设定几个时间段,比如说 周一,周三 的下午15点。 然后让用户来勾选。如果用户选择了这个时间段,那么每个周一,周三的下午15点都给用户一个提醒
实现可定时响起的闹钟----PendingIntent 与 AlarmManager 的运用