Android自訂訊息推送,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;@Override public 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"); // 啟動該Service startService(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); //點擊跳轉的activity messageIntent = 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下載點擊
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。