admin 管理员组文章数量: 888398
Android系统消息推送
现在好多应用都接入了推送功能,市面上也有很多关于推送的第三方,例如极光等等,那么我们需求不大,接入极光会造成很大的资源浪费,下面我们来看下利用android服务进行本地推送消息,
1.注册一个Service
import android.annotation.TargetApi;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
import android.os.IBinder;
import java.util.Calendar;/*** Created by 70883 on 2017/8/10.*/
public class PushSmsService extends Service {private NotificationManager manager;private PendingIntent pi;private MyThread myThread;@Overridepublic IBinder onBind(Intent intent) {// TODO Auto-generated method stubreturn null;}@Overridepublic void onCreate() {myThread = new MyThread();myThread.start();super.onCreate();}@Overridepublic void onDestroy() {super.onDestroy();}@TargetApi(Build.VERSION_CODES.JELLY_BEAN)private void notification() {// 获取系统的通知管理器 manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);Intent intent = new Intent(getApplicationContext(),MainActivity.class);pi = PendingIntent.getActivity(getApplicationContext(), 0, intent, 0);Notification notification = new Notification.Builder(getApplicationContext()).setAutoCancel(true).setContentText("工作在忙,也要吃饭哦").setContentIntent(pi).setSmallIcon(R.mipmap.ic_icon).setWhen(System.currentTimeMillis()).build();notification.defaults = Notification.DEFAULT_ALL; // 使用默认设置,比如铃声、震动、闪灯 notification.flags = Notification.FLAG_AUTO_CANCEL; // 但用户点击消息后,消息自动在通知栏自动消失 notification.flags |= Notification.FLAG_NO_CLEAR;// 点击通知栏的删除,消息不会依然不会被删除 manager.notify(0, notification);}private class MyThread extends Thread{private Calendar c ;@Overridepublic void run() {while (true){c = Calendar.getInstance();if(c.get(Calendar.HOUR_OF_DAY) == 15){try {notification();sleep(1000*60*60);} catch (InterruptedException e) {e.printStackTrace();}}}}}
}
2.在AndroidMan中注册
<service android:name=".ui.Service.PushSmsService"></service>
3.由于我是需要全局应用就在Application中进行启动了
public void startService() {Intent intent = new Intent(this, PushSmsService.class);// 启动服务startService(intent);}
4.也可以配合服务端使用,定时推送消息
本文标签: Android系统消息推送
版权声明:本文标题:Android系统消息推送 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1686636347h20138.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论