1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Android自定义消息推送

Android自定义消息推送

时间:2022-01-17 01:09:37

相关推荐

Android自定义消息推送

啥也不说看图:

点击后效果:

代码:主方法:

package com.text.ac;import java.util.Calendar;import android.app.Activity;import android.app.AlarmManager;import android.app.Notification;import android.app.NotificationManager;import android.app.PendingIntent;import android.content.Context;import android.content.Intent;import android.os.Bundle;import android.os.SystemClock;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;/*** * @author Hardi**/public class TextActivity extends Activity {Button button;Button buttonstop;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);button = (Button)findViewById(R.id.button);buttonstop=(Button)findViewById(R.id.titlebutton);button.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {Intent intent = new Intent();// 设置Action属性intent.setAction("com.text.ac.action.MY_SERVICE");// 启动该ServicestartService(intent);// startService(new Intent(ExTextActivity.this, MessageService.class));}});buttonstop.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {Intent intent = new Intent();// 设置Action属性intent.setAction("com.text.ac.action.MY_SERVICE");// 关闭该ServicestopService(intent);}});}}

写了一个服务:

package com.text.ac;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.IBinder;import android.widget.Toast;public class MessageService extends Service { //获取消息线程private MessageThread messageThread = null;//点击查看private Intent messageIntent = null;private PendingIntent messagePendingIntent = null;//通知栏消息private int messageNotificationID = 1000;private Notification messageNotification = null;private NotificationManager messageNotificatioManager = null;public IBinder onBind(Intent intent) {return null;}@Overridepublic void onCreate() {//初始化messageNotification = new Notification();messageNotification.icon = R.drawable.ic_hehe;messageNotification.tickerText = "新消息";messageNotification.defaults = Notification.DEFAULT_SOUND;messageNotificatioManager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);//点击跳转的activitymessageIntent = new Intent(this, TextActivity.class);messagePendingIntent = PendingIntent.getActivity(this,0,messageIntent,0);//开启线程messageThread = new MessageThread();messageThread.isRunning = true;messageThread.start();Toast.makeText(MessageService.this, "aaaa", Toast.LENGTH_LONG).show();super.onCreate();}/*** 从服务器端获取消息**/class MessageThread extends Thread{//运行状态,下一步骤有大用public boolean isRunning = true;public void run() {while(isRunning){try {//休息10分钟Thread.sleep(5000);//获取服务器消息String serverMessage = getServerMessage();if(serverMessage!=null&&!"".equals(serverMessage)){//更新通知栏messageNotification.setLatestEventInfo(MessageService.this,"新消息","您中奖了,500万!"+serverMessage,messagePendingIntent);messageNotificatioManager.notify(messageNotificationID, messageNotification);//每次通知完,通知ID递增一下,避免消息覆盖掉messageNotificationID++;}} catch (InterruptedException e) {e.printStackTrace();}}}}@Overridepublic void onDestroy() {// System.exit(0);//或者,二选一,推荐使用System.exit(0),这样进程退出的更干净messageThread.isRunning = false;super.onDestroy();}/*** 这里以此方法为服务器Demo,仅作示例* @return 返回服务器要推送的消息,否则如果为空的话,不推送*/public String getServerMessage(){return "不错哦";}}

点击运行即可!! demo下载点击

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。