国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 系統 > Android > 正文

Android中利用App實現消息推送機制的代碼

2020-04-11 12:43:44
字體:
來源:轉載
供稿:網友
1.消息推送機制
服務器器端需要變被動為主動,通知客戶一些開發商認為重要的信息,無論應用程序是否正在運行或者關閉。
我想到了一句話:don't call me,i will call you!
qq今天在右下角彈出了一個對話框:"奧巴馬宣布本拉登掛了...",正是如此。
自作聰明,就會帶點小聰明,有人喜歡就有人討厭。
2.獨立進程
無論程序是否正在運行,我們都要能通知到客戶,我們需要一個獨立進程的后臺服務。
我們需要一個獨立進程的后臺服務。
在androidmanifest.xml中注冊service時,有一個android:process屬性,如果這個屬性以"."開頭,則為此服務開啟一個
全局的獨立進程,如果以":"開頭則為此服務開啟一個為此應用私有的獨立進程。舉個具體的例子吧,我們新建了一個
application,創建了主進程com.cnblogs.tianxia,那么:
復制代碼 代碼如下:

<!--下面會創建一個全局的com.cnblogs.tianxia.message的獨立進程-->
<service android:name=".service.messageservice" android:label="消息推送" android:process=".message" />
<!--或者-->
<!--下面會創建一個應用私有的com.cnblogs.tianxia:message的獨立進程-->
<service android:name=".service.messageservice" android:label="消息推送" android:process=":message" />
我們沒必要建立一個全局的,本文選擇第二種方案,創建一個當前應用私有的獨立進程。
3.通知用戶和點擊查看
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;
}

@override
public int onstartcommand(intent intent, int flags, int startid) {
//初始化
messagenotification = new notification();
messagenotification.icon = r.drawable.icon;
messagenotification.tickertext = "新消息";
messagenotification.defaults = notification.default_sound;
messagenotificatiomanager = (notificationmanager)getsystemservice(context.notification_service);

messageintent = new intent(this, messageactivity.class);
messagependingintent = pendingintent.getactivity(this,0,messageintent,0);

//開啟線程
messagethread = new messagethread();
messagethread.isrunning = true;
messagethread.start();

return super.onstartcommand(intent, flags, startid);
}

/**
* 從服務器端獲取消息
*
*/
class messagethread extends thread{
//運行狀態,www.3ppt.com下一步驟有大用
public boolean isrunning = true;
public void run() {
while(isrunning){
try {
//休息10分鐘
thread.sleep(600000);
//獲取服務器消息
string servermessage = getservermessage();
if(servermessage!=null&&!"".equals(servermessage)){
//更新通知欄
messagenotification.setlatesteventinfo(messageservice.this,"新消息","奧巴馬宣布,本拉
登兄弟掛了!"+servermessage,messagependingintent);
messagenotificatiomanager.notify(messagenotificationid, messagenotification);
//每次通知完,通知id遞增一下,避免消息覆蓋掉
messagenotificationid++;
}
} catch (interruptedexception e) {
e.printstacktrace();
}
}
}
}

/**
* 這里以此方法為服務器demo,僅作示例
* @return 返回服務器要推送的消息,否則如果為空的話,不推送
*/
public string getservermessage(){
return "yes!";
}
}


其中messageactivity是點擊跳轉的activity,負責處理查看詳細信息。
我們在其他activity中調用一下:
復制代碼 代碼如下:

boolean ismessagepush = true;//不開啟就設置為false;
...
if(ismessagepush){
startservice(new intent(this, messageservice.class))
};

運行一下:
4.停止服務
1 stopservice(new intent(myactivity.this,messageservice.class));
2 setmessagepush(false);//設置配置文件或數據庫中flag為false
運行一下,停止服務后,卻出乎意料的并沒有停下來,怎么回事?是不是代碼寫錯了?
代碼沒有錯,錯在我們停止了服務,卻沒有停止進程,退出線程。
5.退出線程
實踐證明,thread的stop()方法并不可靠。但是我們有其他的辦法。
在代碼面前,程序員就是上帝。
退出線程有兩種方法。
第一種方法,強制退出。
//殺死該線程所在的進程,自然就退出了
2 system.exit(0);
第二種方法,設置isrunning為false。
view sourceprint?1 //前面說到了isrunning這個標志,設置為false后,線程的執行就從while循環中跳出來了,然后自然結束
掉了
2 messagethread.isrunning = false;
綜合一下,我們在messageservice中重載ondestroy()方法如下:
復制代碼 代碼如下:

@override
public void ondestroy() {
system.exit(0);
//或者,二選一,推薦使用system.exit(0),這樣進程退出的更干凈
//messagethread.isrunning = false;
super.ondestroy();
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
国产爆初菊在线观看免费视频网站| 在线视频三级| 四虎精品视频| 日韩a视频在线观看| 白浆爆出在线观看| 另类专区欧美| 福利视频在线看| 最好看更新中文字幕| 国产a级网站| 日本成人免费网站| 天堂中文字幕在线| 国产女主播在线| www在线视频| 国产精品va在线观看视色| 国产高潮又爽又无遮挡又免费| 92久久精品| sm国产在线调教视频| 天堂在线亚洲| 在线国产91| 国产精品69一区二区三区| 先锋av资源网| 51成人精品网站| 黄网在线免费| 亚洲第一区视频| 国产日本在线视频| 日本卡一卡2卡3卡4精品卡网站| 国产裸舞福利在线视频合集| 97操碰视频| 国产精品久久久久白浆| 久久国产精品黑丝| av日韩国产| 国产精品美女视频免费观看软件| 男人天堂亚洲| 日p在线观看| av福利在线观看| 国产青草视频在线观看视频| 久热免费视频| 就爱干草视频| 久久国产精品黑丝| www.国产精品.com| 青青草免费在线观看| 波多野结衣久久高清免费| 99热免费在线| 伊人免费视频| 日本天堂影院在线视频| wwww亚洲| 久青青在线观看视频国产| eeuss在线观看| av免费在线观看网站| 在线播放黄色网址| 青青青青在线| 国产在线二区| 国产麻豆精品视频一区二区| 天堂资源最新版在线视频观看免费网| 国产在线视频网站| 88av在线| 97视频在线| 四虎国产精品永久地址998| 日韩中文字幕久久久经典网| 亚洲成av人影片在线观看| 亚洲www色| 免费不卡中文字幕视频| 91sp网站在线观看入口| 国产白浆在线| а√资源新版在线天堂| 国产美女自拍视频| 国产小视频免费在线观看| 精品国产高清a毛片无毒不卡| 亚洲成年人视频| 国产图片综合| 亚洲精品自拍区在线观看| 青青草免费在线观看| 国产黄在线播放| 热99在线观看| 97国产视频| 国产乱在线观看视频| 国产小视频免费在线网址| 在线欧美一级视频| 成人精品福利| 亚洲综合色视频在线观看| 国产一二在线观看| gogo高清在线播放免费| 国产aa视频| 国产视频一二三区| 成在在线免费视频| 69视频在线| 天堂在线一二区| 久热中文字幕在线观看| 一本久久精品| 伊人资源视频在线| 91视频久色| 国产精品欧美韩国日本久久| 女同一区二区免费aⅴ| 精品视频三区| 国产色在线播放| 国产麻豆精品视频一区二区| 九九热在线观看视频| 免费观看久久久久| av中文字幕在线看| 日本福利午夜视频在线| 亚洲欧美精品日韩欧美| 99久久国产视频| 在线播放www| 亚洲成a人v欧美综合天堂麻豆| 精品视频在线一区二区| 国产jizz| av首页在线| jizz亚洲| 国产精品一区二区资源| 午夜不卡视频| 国产一区二区三区福利| 天堂在线一二区| 国产精品免费视频一区一| 国产一级粉嫩xxxx| 国产黄色免费| heisi视频网在线观看| 免费国产视频| 国产一级免费黄色片| 国产精品久久久久久福利| 精精国产xxxx视频在线动漫| 中文在线官网天堂| 四虎国产精品永久| 国产美女视频网站| 精精国产xxxx视频在线中文版| av在线播放国产| 九九热在线视频观看| 尤物视频免费在线观看| 国产不卡精品一区二区三区| 日韩国产成人| 国产视频第一区| 伊人影院在线视频| 激情丁香婷婷| 69国产精品| 九九在线观看免费视频| 国产成人综合亚洲欧美在| 人人干人人插| 国产精品186在线观看在线播放 | 日本欧美在线视频免费观看| 欧美专区日韩| 国产视频精品久久| 欧美日韩性视频一区二区三区| 国产农村一级特黄α**毛片| 97一区二区三区| 久久久久久77777| av免费在线免费| 国产精品毛片一区二区三区四区| 秋霞av在线| 精品伦理一区二区| 国产私人影院| 天堂在线免费视频| 日本国产在线| 亚洲www色| 一本大道五月香蕉| 国产高清av在线| 国产精品视频h| 中文字幕在线观看播放| 麻豆精品视频入口| 秋霞av在线| 日本高清中文字幕在线| 依依成人在线| 色吊丝av中文字幕| а√最新版在线天堂| 精品av中文字幕在线毛片| **三级三级97片毛片| 国产九九九九| 国产偷倩在线播放| 国产色在线播放| 国产精品爱久久久久久久小说 | 在线观看免费视频一区二区三区| 国产福利在线免费观看| 国产视频资源| 国产二级c片l毛片| 999精品网| 精品一二三四| 亚洲视频在线观看不卡| 免费在线高清av| 国产麻豆麻豆| 国产高清av在线| 亚洲字幕成人中文在线观看| 爱福利在线视频| 日本中文字幕在线视频| 国产另类图片| 国产成人精品实拍在线| 亚洲网站视频在线观看| 久久久久久久久亚洲精品| 国产日韩网站| 欧美一级久久久久久久久大| 最近免费中文字幕在线第一页| 国产一级黄色| 在线国产三级| 国产精品外围在线观看| 在线中文av| 国产麻豆精品视频一区二区 | 九九热视频在线| 中文字幕在线播放网址| 亚洲国产精华液| 国产一二区视频| 欧美韩日国产| 一本大道久久a久久精品| 国产鲁鲁视频在线观看免费|