Android Umeng PushService

public class PushServices extends UmengBaseIntentService {
	private PushAgent mPushAgent;
	private ScheduledExecutorService service;
	private ScheduledFuture scheduledFuture;
	private int i = 1;
	private Handler handler = new Handler() {
		public void handleMessage(android.os.Message msg) {
			Toast.makeText(getApplicationContext(), "定时:"+msg.what, Toast.LENGTH_SHORT).show();
		};
	};

	@Override
	public void onCreate() {
		// TODO Auto-generated method stub
		super.onCreate();

		try {
			timeTask();
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (ExecutionException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

	/**
	 *
	 * @Title: timeTask
	 * @Description: TODO 定时更新任务,一集定时上传
	 * @return void
	 */
	public void timeTask() throws InterruptedException, ExecutionException {
		// TODO Auto-generated method stub
		if (service == null) {
			service = Executors.newScheduledThreadPool(1);
		}

		if (scheduledFuture == null) {
			scheduledFuture = service.scheduleAtFixedRate(new UploadData(), 0,
					5, TimeUnit.SECONDS);
		}
	}

	@Override
	protected void onMessage(Context context, Intent intent) {
		// TODO Auto-generated method stub
		super.onMessage(context, intent);
		try {
			String message = intent.getStringExtra(BaseConstants.MESSAGE_BODY);
			if (StringUtils.isEmpty(message)) {
				return;
			}

			UMessage msg = new UMessage(new JSONObject(message));
			if (msg != null) {
				mPushAgent = PushAgent.getInstance(context);
				UmengMessageHandler messageHandler = new UmengMessageHandler();
				messageHandler.dealWithNotificationMessage(context, msg);
				UmengNotificationClickHandler notificationClickHandler = new UmengNotificationClickHandler();
				mPushAgent.setMessageHandler(messageHandler);
				mPushAgent
						.setNotificationClickHandler(notificationClickHandler);
				UTrack.getInstance(context).trackMsgClick(msg);
			}
		} catch (Exception e) {

		}

	}

	@Override
	public void onDestroy() {
		// TODO Auto-generated method stub
		super.onDestroy();
		if (scheduledFuture != null) {
			scheduledFuture.cancel(true);
			scheduledFuture = null;
		}
	}

	// 上传任务
	public class UploadData implements Runnable {
		@Override
		public void run() {
			// TODO Auto-generated method stub
			i++;
			Message message=Message.obtain();
			message.what=i;
			handler.sendMessage(message);
		}

	}
}

时间: 2024-10-14 02:58:45

Android Umeng PushService的相关文章

Android:Umeng(友盟) 微信,QQ,新浪分享 (三)

第一步: 下载并安装SDK 添加代码和资源引用,我们提供了添加资源文件和jar文件的两种方式,可以根据需求选择 解压SDK压缩包,将文件夹中的'main/libs'和'main/res'文件夹复制到你的项目工程根目录下(如使用'ADT 17'以下用户需要手动添加'libs'下的jar文件到工程Path中) 结合上两篇文章 PushSDKMoudle中添加QQ,微信,新浪分享后的libs结构: 注:除jar包外,其余文件夹均需添加对应分享的so包.没有则不添加,附图: 第二步: AndroidMa

Ant 批量打包Android Umeng多渠道版本

先决条件: apache ant antcontrib 具体步骤: 在?AndroidManifest.xml 中添加meta-data 标签: <meta-data android:name="UMENG_CHANNEL" android:value="10086" ></meta-data> 生成ant build.xml android update project?-p?[project_path] 在ant.properties文件

Android集成友盟推送功能

友盟是中国最大的移动开发者服务平台,为移动开发者提供免费的应用统计分析.社交分享.消息推送.自动更新.在线参数.移动推广效果分析.微社区等app开发和运营解决方案. 如何快速集成友盟推送功能: 1. 注册友盟账号 友盟开发者账号的注册地址:http://www.umeng.com/users/sign_up 2. 创建推送应用 首先进入友盟消息推送的应用中心,创建一个应用,链接地址为:http://message.umeng.com/appList. 应用创建完成后,点击应用名称进入应用详情页面

Android学习之友盟5.0推送,分享踩坑总结

这几天都没有写博客,今天集成友盟5.0推送,分享,得闲,总结一下友盟5.0推送分享踩得哪些坑! 之前写的友盟踩坑心得是基于友盟4.3版本的,现在友盟5.0相较于4.3,有了较大的改动,呜呼哀哉!学而时习之吧. 友盟5.0的好处:集成推送,分享可以通过导入module的形式,代码简化,维护性高,(一些资源文件就不用自己慢慢去拷贝了). 至于缺点,就是刚刚改版,会有很多跟4.3不一样的使用方法,所以需要前人去踩坑了! 友盟推送: 1:添加Module Android studio导入Module自不

Android高效率编码-第三方SDK详解系列(三)——JPush推送牵扯出来的江湖恩怨,XMPP实现推送,自定义客户端推送

Android高效率编码-第三方SDK详解系列(三)--JPush推送牵扯出来的江湖恩怨,XMPP实现推送,自定义客户端推送 很久没有更新第三方SDK这个系列了,所以更新一下这几天工作中使用到的推送,写这个系列真的很要命,你要去把他们的API文档大致的翻阅一遍,而且各种功能都实现一遍,解决各种bug各种坑,不得不说,极光推送真坑,大家使用还是要慎重,我们看一下极光推送的官网 https://www.jpush.cn/common/ 推送比较使用,很多软件有需要,所以在这个点拿出来多讲讲,我们本节

Android中实现消息推送(JPush)

1,去JPush官网注册一个账号,创建你的app的应用,并且拿到你应用的AppKey 2,在JPush官网下载对应的sdk,解压出来,将libs文件下的所有的文件全部复制到你工程的libs文件中 3,在清单文件中添加对应的权限和activity(更改对应的包名和对应的AppKey) AndroidManifest.xml权限配置: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:andr

Android实现点击通知栏后,先启动应用再打开目标Activity

情况简述 在开发Android app的过程中,遇到这样一个需求:app中启动一个Service,该Service在独立进程中运行,与服务器保持长连接,将服务器推送过来的消息在通知栏中显示,并设置点击动作,点击后跳转到app中对应的Activity.目前遇到的问题是Service以独立进程运行,在收到消息并弹出通知后,app本身的进程有两种情况: app正在运行 app已退出 对于第一种情况,处理就非常简单了,直接将参数传入Intent并打开对应的Activity即可. 但第二种情况比较复杂,因

Android消息推送:手把手教你集成小米推送

前言 在Android开发中,消息推送功能的使用非常常见. 为了降低开发成本,使用第三方推送是现今较为流行的解决方案. 今天,我将手把手教大家如何在你的应用里集成小米推送 该文档基于小米推送官方Demo,并给出简易推送Demo 看该文档前,请先阅读我写的另外两篇文章: 史上最全解析Android消息推送解决方案 Android推送:第三方消息推送平台详细解析 目录 1. 官方Demo解析 首先,我们先对小米官方的推送Demo进行解析. 请先到官网下载官方Demo和SDK说明文档 1.1 Demo

Android端小米推送Demo解析和实现方法

前言 最近这几个月都是在准备找工作和找工作中,付出了很多,总算是有点收获,所以都没有怎么整理笔记.到了最近才有空把自己的笔记整理一下发上来,分享一下我的学习经验. 推送 由于最近项目要用到Android的消息推送,关于Android推送的解决方案有很多种,有C2DM,轮询, SMS,MQTT协议,XMPP协议和第三方平台,经过我们对项目需求的考虑之后我们选择了第三方平台推送的小米推送,下面就是小米推送的实现方法. 实现准备 想要用小米推送首先要去小米开发者平台注册申请开发者账号,经过1到3天的审