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

(0)

相关推荐

  • Android编程中图片特效处理方法小结

    本文实例总结了Android编程中图片特效处理方法.分享给大家供大家参考,具体如下: 这里介绍的Android图片处理方法包括: 转换 -  drawable To  bitmap 缩放 -  Zoom 圆角 -  Round Corner 倒影 -  Reflected bitmapPrcess  code: package com.learn.games; import android.graphics.Bitmap; import android.graphics.Canvas; impo

  • Android实用的代码片段 常用代码总结

    1:查看是否有存储卡插入 复制代码 代码如下: String status=Environment.getExternalStorageState(); if(status.equals(Enviroment.MEDIA_MOUNTED)) {    说明有SD卡插入 } 2:让某个Activity透明 OnCreate中不设Layout this.setTheme(R.style.Theme_Transparent); 以下是Theme_Transparent的定义(注意transparent

  • Android实用图文教程之代码混淆、第三方平台加固加密、渠道分发

    第一步:代码混淆(注意引入的第三方jar) 在新版本的ADT创建项目时,混码的文件不再是proguard.cfg,而是project.properties和proguard-project.txt. 新建一个项目的时候,会自动生成project.properties和proguard-project.txt文件,无需自己新建,如果你的项目无法自动生成,那么你就要检查一下你的ADT版本了 如果需要对项目进行全局混码,只需要进行一步操作: 将project.properties的中 "#progua

  • android实用工具类分享(获取内存/检查网络/屏幕高度/手机分辨率)

    复制代码 代码如下: public class CommonUtil { public static boolean hasSDCard() { String status = Environment.getExternalStorageState();  return status.equals(Environment.MEDIA_MOUNTED); } /**  * 获取最大内存  *   * @return  */ public static long getMaxMemory() { r

  • Android封装的http请求实用工具类

    复制代码 代码如下: import java.io.BufferedReader;import java.io.InputStreamReader;import java.net.URLEncoder;import java.security.KeyStore;import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.Map.Entry; import org.apache.http

  • 一些比较实用的 Android adb 命令分享

    下面是一些我找到Android的ADB有用的命令.可以手动或使用自动构建和测试过程. 查看设备 复制代码 代码如下: adb devices 如果多个设备连接则使用 use adb -s DEVICE_ID连接到目标设备 安装应用 使用install命令安装一个apk包,如果应用已安装到了该设备,则使用-r重新安装和保持原来的应用数据 复制代码 代码如下: adb install -r APK_FILE #example adb install -r com.feiliu.wjbd 卸载一个应用

  • Android编程实现TextView字体颜色设置的方法小结

    本文实例讲述了Android编程实现TextView字体颜色设置的方法.分享给大家供大家参考,具体如下: 对于setTextView(int a)这里的a是传进去颜色的值.例如,红色0xff0000是指0xff0000如何直接传入R.color.red是没有办法设置颜色的,只有通过文章中的第三种方法先拿到资源的颜色值再传进去. 复制代码 代码如下: tv.setTextColor(this.getResources().getColor(R.color.red)); 关键字: android t

  • Android 实用工具之emulator介绍

    在android-sdk\tools目录下,有一个名为emulator.exe的可执行程序,望名知义,emulator即为仿真器或模拟器,但很多人可能会发现,通过AVD Manager启动模拟器没有问题,avd也安装了,但是直接双击模拟器emulator.exe却打不开,只闪一下,却运行不起来,我相信很多新手都遇到过这个问题,这里给出一个原因解答和解决方案: 打不开的原因是没有指定具体的avd,通过在cmd窗口下指定具体的AVD名称即可, (之前我的博文中有介绍如何安装Android虚拟机,不记

  • Android编程实现WebView自适应全屏方法小结

    本文实例讲述了Android编程实现WebView自适应全屏的方法.分享给大家供大家参考,具体如下: 第一种: settings.setUseWideViewPort(true); settings.setLoadWithOverviewMode(true); 第二种: WebSetting settings = webView.getSettings(); settings.setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN); 把所有内容放在we

  • Android编程实用技术小结

    本文实例总结了Android编程实用技术.分享给大家供大家参考,具体如下: 1.捕获开机事件,启动receiver <receiver android:name=".BootReceiver"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> <category android:name="android.

  • Android编程加密算法小结(AES、Base64、RAS加密算法)

    本文实例总结了Android编程加密算法.分享给大家供大家参考,具体如下: android常用加密算法之Base64加密算法: package com.long; /** * Copyright (C) 2010 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in

  • Android编程之通知栏的用法小结

    本文实例总结了Android编程中通知栏的用法.分享给大家供大家参考,具体如下: 很久没有使用Android的通知功能了,今天把两年前的代码搬出来一看,发现很多方法都废弃了,代码中各种删除线看的十分不爽.于是乎,打开Google,查看官方文档,学习最新的发送通知栏消息的方法. 本文中的代码均参照谷歌官方文档编写: http://developer.android.com/guide/topics/ui/notifiers/notifications.html 1.首先,获取系统的通知服务: 复制

  • Android编程实现读取手机联系人、拨号、发送短信及长按菜单操作方法实例小结

    本文实例讲述了Android编程实现读取手机联系人.拨号.发送短信及长按菜单操作方法.分享给大家供大家参考,具体如下: 1.Andrid项目结构图↓主要操作图中红色方框内的文件. 2.首先布局代码如下 a, main.xml 程序运行的主界面,主要用ListView列表控件展示手机联系人 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://s

  • Android编程开发之EditText中inputType属性小结

    本文总结分析了Android编程开发之EditText中inputType属性.分享给大家供大家参考,具体如下: android 1.5以后添加了软件虚拟键盘的功能,所以在输入提示中将会有对应的软键盘模式. android中inputType属性在EditText输入值时启动的虚拟键盘的风格有着重要的作用.这也大大的方便的操作.有时需要虚拟键盘只为字符或只为数字.所以inputType尤为重要. 复制代码 代码如下: <EditText android:layout_width="fill

  • Android编程创建桌面快捷方式的常用方法小结【2种方法】

    本文实例讲述了Android编程创建桌面快捷方式的常用方法.分享给大家供大家参考,具体如下: Android在桌面上生成快捷方式有两种情况,一种是直接在桌面直接生成;一种是长按桌面,在弹出的快捷菜单中生成. 谈谈在桌面上直接生成.个人觉得这个比较爽快,既然都是快捷方式了干嘛还要再隐藏一层呢?当然喜欢桌面干净的就比较喜欢第二个了. 第一个是通过广播(Broadcast)的形式向Luncher发送请求生成快捷方式的. 在网上找到关于这方面的注册信息. <!--设置wallpapaer的activit

  • Android编程中延后处理事件的方法小结

    本文实例讲述了Android编程中延后处理事件的方法.分享给大家供大家参考,具体如下: 一.Handler和TimerTask相结合 1.首先定义TimerTask TimerTask task = new TimerTask(){ public void run() { Message message = new Message(); message.what = 1; handler.sendMessage(message); } }; 2.定义Handler Handler handler

随机推荐