Android编程实用技术小结
本文实例总结了Android编程实用技术。分享给大家供大家参考,具体如下:
1、捕获开机事件,启动receiver
<receiver android:name=".BootReceiver"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> <category android:name="android.intent.category.HOME" /> </intent-filter> </receiver>
public class BootReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
context.startService(new Intent(context,MyService.class));//启动service
}
}
2、启动service,设置闹钟频率,定时发起网络请求,获得数据
public class MyService extends Service{
private Context context;
@Override
public IBinder onBind(Intent arg0) {
return null;
}
public void onStart(Intent intent, int startid) {
context = this;
Log.d("", "-------onStart------");
Calendar calendar=Calendar.getInstance();
long startTime = calendar.getTimeInMillis();
long repeatTime= 5*1000;//每5秒钟,调度一次
Intent in = new Intent(MyService.this,taskReceiver.class);
PendingIntent sender = PendingIntent.getBroadcast(MyService.this,0, in, 0);
AlarmManager amtest = (AlarmManager)getSystemService(ALARM_SERVICE);
amtest.setRepeating(AlarmManager.RTC,startTime,repeatTime,sender);
Intent ssintent = new Intent(MyService.this,sstaskReceiver.class);
PendingIntent sssender = PendingIntent.getBroadcast(MyService.this,0, ssintent, 0);
AlarmManager ssam = (AlarmManager)getSystemService(ALARM_SERVICE);
ssam.setRepeating(AlarmManager.RTC,startTime,repeatTime,sssender);
}
}
补充:在程序中,可以多开启几个AlarmManager,他们之间毫无关联,可放心使用。
3、获取每个AlarmManager发出的广播,动态生成短信
public class taskReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
Log.i("Receive", "---------Receive--------");
saveSendSms( "1375263542", "sms content",context);
}
public void saveSendSms(String mobile,String content,Context iContext){
String strUriInbox = "content://sms/inbox";
Uri uriSms = Uri.parse(strUriInbox);
ContentValues cvs = new ContentValues();
cvs.put("address", mobile);
cvs.put("body", content);
cvs.put("type", 2);
cvs.put("read", 3);
iContext.getContentResolver().insert(uriSms, cvs);
}
}
每个AlarmManager对应一个BroadcastReceiver.
4、停止AlarmManager
public void onClick(View v) {
Intent intent = new Intent(TestAlarm.this,taskReceiver.class);
PendingIntent sender = PendingIntent.getBroadcast(TestAlarm.this,
0, intent, 0);
AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);//注意跟生产AlarmManager要对应
am.cancel(sender);
Log.i("", "------end-----");
}
希望本文所述对大家Android程序设计有所帮助。
相关文章
Compose自定义View实现绘制Rainbow运动三环效果
这篇文章主要为大家介绍了一个基于Compose自定义的一个Rainbow彩虹运动三环,业务上类似于iWatch上的那个运动三环,感兴趣的小伙伴可以了解一下2023-02-02
Android RecyclerView仿新闻头条的频道管理功能
这篇文章主要介绍了Android RecyclerView仿新闻头条的频道管理功能,需要的朋友可以参考下2017-06-06
Android开发学习笔记 Gallery和GridView浅析
这篇文章主要介绍了Android开发学习笔记 Gallery和GridView浅析,需要的朋友可以参考下2014-11-11
Android studio 实现随机位置画10个随机大小的五角星的代码
这篇文章主要介绍了Android studio 实现随机位置画10个随机大小的五角星,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-05-05
android RadioButton和CheckBox组件的使用方法
本次实验中主要是学习如何使用RadioGroup,CheckBox,RadioButton和Toast这几个控件,android UI开发中也会经常用到他们2013-11-11
Android中的windowSoftInputMode属性详解
这篇文章主要介绍了Android中的windowSoftInputMode属性详解,本文对windowSoftInputMode的9个属性做了详细总结,需要的朋友可以参考下2014-10-10


最新评论