当前位置: 首页 > 编程笔记 >

Android编程实用技术小结

陆耀
2023-03-14
本文向大家介绍Android编程实用技术小结,包括了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.

<receiver android:name=".taskReceiver" android:process=":remote"></receiver>

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程序设计有所帮助。

 类似资料:
  • 本文向大家介绍Android编程常用技巧实例总结,包括了Android编程常用技巧实例总结的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Android编程常用技巧。分享给大家供大家参考,具体如下: 1. 登录的时候,如果输入有误,则输入框左右震动,表示输入有误 在res下准备一个anim文件夹,里面包含两个文件,main_login_shake.xml 和 main_login_cycl

  • 本文向大家介绍java编程常用技术(推荐),包括了java编程常用技术(推荐)的使用技巧和注意事项,需要的朋友参考一下 一:将String字符串放在最前面 防止发生NullPointerException异常,我们通常把String字符串放在equals方法的左边来比较,这样可以有效的避免 空指针异常的发生。 第一种情况,如果variable为Null,则会发生空指针异常情况;第二种情况即使var

  • 本文向大家介绍Python多进程编程技术实例分析,包括了Python多进程编程技术实例分析的使用技巧和注意事项,需要的朋友参考一下 本文以实例形式分析了Python多进程编程技术,有助于进一步Python程序设计技巧。分享给大家供大家参考。具体分析如下: 一般来说,由于Python的线程有些限制,例如多线程不能充分利用多核CPU等问题,因此在Python中我们更倾向使用多进程。但在做不阻塞的异步U

  • 小米面试对项目考察较多,基本上写的都会问到,还有一些发散性的场景题和算法题,以下是两轮面试的一些技术题,大家感受下: 技术面 怎么理解面向对象(继承和多态的关系) synchronized关键字 为什么匿名内部类中引用的局部变量必须要加final int和Integer 跨进程通信方式 activity启动模式 事件的处理机制 双亲委派机制 什么是OOM Handler内存泄漏 Android广播

  • 时长:1小时 1、项目30分钟 2、Java函数调用过程 3、Volatile关键字的作用? 什么是可见性? 4、假定一个场景:在多线程环境下,线程A在10秒前对一个共享变量修改,线程B在10秒之后读取该共享变量的值,这种情况下需要加Volatile关键字吗? 5、JVM垃圾回收机制 6、常用的垃圾回收算法? 7、GC Root 引用的对象包括哪些? 标记的是有用的对象还是垃圾对象? 8、程序计数

  • 更新:--------------------------------- 10月16日hr面 本来以为都凉了,没想到二面还是过了 ----------------------------------------------- 时长:40分钟 1、进程、线程、协程的区别 2、进程的调度算法 3、线程池 4、线程池阻塞队列有哪些?底层别是什么数据结构 5、项目 手撕:二叉树的层序遍历(跟一面一样),面