Android自訂訊息推送,android自訂訊息

來源:互聯網
上載者:User

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下載點擊



著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.