android消息
A. 簡述在android中如何發送廣播消息
1.發送廣播
Intent intent = new Intent(BroadcastAction);
Bundle bundle = new Bundle();
bundle.putString("***", SUCCESS);
bundle.putString("FullPathName", mFullPathName);
intent.putExtras(bundle);
sendBroadcast(intent);
2.在Activity中創建一個內部類MyBroadcastReceiver擴展BroadcastReceiver,並在其中實現onReceive方法。
3.在Activity中聲明一個MyBroadcastReceiver類型的成員變數,並注冊:
private MyBroadcastReceiver myBroadcastReceiver;
...
myBroadcastReceiver = new MyBroadcastReceiver();
IntentFilter filter = new IntentFilter();
filter.addAction(BroadcastAction);
registerReceiver(receiver, filter);
4.使用完後要記得釋放
unregisterReceiver(receiver);
註:1和2中的 BroadcastAction要是同一個Action
B. android消息推送原理是怎麼樣的
主要介紹其中的五種實現方式:短輪詢、Comet、Flash XMLSocket、Server-sent、WebSocket1、短輪詢
指在特定的的時間間隔(如每10秒),由瀏覽器對伺服器發出HTTP request,然後由伺服器返回最新的數據給客戶端的瀏覽器。瀏覽器做處理後進行顯示。無論後端此時是否有新的消息產生,都會進行響應
2、Comet
包括了長輪詢和長連接,長輪詢是客戶端向伺服器發送Ajax請求,伺服器接到請求後hold住連接,直到有新消息才返回響應信息並關閉連接,客戶端處理完響應信息後再向伺服器發送新的請求;長連接是在頁面中的iframe發送請求到服務端,服務端hold住請求並不斷將需要返回前端的數據封裝成調用javascript函數的形式響應到前端,前端不斷收到響應並處理
3、Flash XMLSocket
在 HTML 頁面中內嵌入一個使用了 XMLSocket 類的 Flash 程序。JavaScript 通過調用此 Flash 程序提供的socket介面與伺服器端的socket進行通信。JavaScript 在收到伺服器端以 XML 格式傳送的信息後可以很容易地控制 HTML 頁面的內容顯示
4、Server-sent
伺服器推指的是HTML5規范中提供的服務端事件EventSource,瀏覽器在實現了該規范的前提下創建一個EventSource連接後,便可收到服務端的發送的消息,實現一個單向通信。客戶端進行監聽,並對響應的信息處理顯示
5、WebSocket
WebSocket是HTML5下一種新的協議,是基於TCP的應用層協議,只需要一次連接,便可以實現全雙工通信,客戶端和服務端可以相互主動發送消息。客戶端進行監聽,並對響應的消息處理顯示
針對自己系統的應用場景選擇合適的推送方案才是合理的,因此最後簡單說一下實現個性化推送的兩種方式。第一種很簡單,直接使用第三方實現的推送,無需復雜的開發運維,直接可以使用。第二種就是自己封裝,可以選擇如今較為火熱的WebSocket來實現系統的推送。
關於第三方推送平台,極光推送,操作簡單,穩定性高,送達率快
C. 在android 中 什麼對象主要用於發送消息和處理消息
Android消息機制中,Handler對象主要用於發送消息,不能夠處理消息.
D. 如何向android端推送消息
建議這些東西用網路的 挺好用 去網路開發者中心逛逛 裡面很多東西
E. android應用消息提醒功能怎麼做
自定義消息推送的話,需要使用長連接保持客戶端不掉線,然後伺服器中需要記錄客戶端唯一標識符與其對應連接,伺服器獲取消息後,向指定客戶端連接發送消息,如果發送失敗,定時器應該在tick到達時再次嘗試。
F. android推送消息如何實現
安卓消息推送的實現方案有下面幾種:
MQTT協議實現
XMPP協議實現
C2DM雲端推送功能(google官方提供,系統內置,但是國內用不了......)
中國統一推送(工信部牽頭成立,但是目前只是開了幾次會議,並沒有什麼實際的介面出來,不過以後應該會是中國境內的首選方案)
選擇第三方消息推送平台,例如極光,個推等,極光成立於2011年,是國內最早開始做開發者服務的一批公司,極光推送的穩定性和送達率一直是業內做的比較好的,具體可以到極光官網了解
G. android消息彈出框怎麼寫
AlertDialog的構造方法全部是Protected的,所以不能直接通過new一個AlertDialog來創建出一個AlertDialog。
下面例子來自於android學習手冊,android學習手冊包含9個章節,108個例子,源碼文檔隨便看,例子都是可交互,可運行,源碼採用android studio目錄結構,高亮顯示代碼,文檔都採用文檔結構圖顯示,可以快速定位。360手機助手中下載,圖標上有貝殼
要創建一個AlertDialog,就要用到AlertDialog.Builder中的create()方法。
使用AlertDialog.Builder創建對話框需要了解以下幾個方法:
setTitle :為對話框設置標題
setIcon :為對話框設置圖標
setMessage:為對話框設置內容
setView : 給對話框設置自定義樣式
setItems :設置對話框要顯示的一個list,一般用於顯示幾個命令時
setMultiChoiceItems :用來設置對話框顯示一系列的復選框
setNeutralButton :普通按鈕
setPositiveButton :給對話框添加"Yes"按鈕
setNegativeButton :對話框添加"No"按鈕
create : 創建對話框
show :顯示對話框
一、簡單的AlertDialog
下面,創建一個簡單的ALertDialog並顯示它:
public class Dialog_AlertDialogDemoActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Dialog alertDialog = new AlertDialog.Builder(this).
setTitle("對話框的標題").
setMessage("對話框的內容").
setIcon(R.drawable.ic_launcher).
create();
alertDialog.show();
}
}
package com.tianjf;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.os.Bundle;
public class Dialog_AlertDialogDemoActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Dialog alertDialog = new AlertDialog.Builder(this).
setTitle("對話框的標題").
setMessage("對話框的內容").
setIcon(R.drawable.ic_launcher).
create();
alertDialog.show();
}
}運行結果如下:
二、帶按鈕的AlertDialog
上面的例子很簡單,下面我們在這個AlertDialog上面加幾個Button,實現刪除操作的提示對話框
[java] package com.tianjf;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
public class Dialog_AlertDialogDemoActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Dialog alertDialog = new AlertDialog.Builder(this).
setTitle("確定刪除?").
setMessage("您確定刪除該條信息嗎?").
setIcon(R.drawable.ic_launcher).
setPositiveButton("確定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
}).
setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
}).
setNeutralButton("查看詳情", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
}).
create();
alertDialog.show();
}
}
package com.tianjf;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
public class Dialog_AlertDialogDemoActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Dialog alertDialog = new AlertDialog.Builder(this).
setTitle("確定刪除?").
setMessage("您確定刪除該條信息嗎?").
setIcon(R.drawable.ic_launcher).
setPositiveButton("確定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
}).
setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
}).
setNeutralButton("查看詳情", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
}).
create();
alertDialog.show();
}
}在這個例子中,我們定義了三個按鈕,分別是"Yes"按鈕,"No"按鈕以及一個普通按鈕,每個按鈕都有onClick事件,TODO的地方可以放點了按鈕之後想要做的一些處理
看一下運行結果:
可以看到三個按鈕添加到了AlertDialog上,三個沒有添加事件處理的按鈕,點了只是關閉對話框,沒有任何其他操作。
H. Android QQ消息實時接收機制
QQ的消息推送就是後台開啟一個推送服務,這個服務會常駐內存,並且會不定時的發送心跳包來保持連接,像tcp傳輸一樣,傳輸的協議qq用的是XMPP協議,基於XML解析的。主要是加了些消息檢驗、出錯機制等,如果像自己了解推送的詳細內容,可以去看看A...
I. android的消息推送怎麼做
android的消息推送辦法:1、可以使用輪詢(Pull)方式
就是用客戶端定時向伺服器發送相關的信息,一旦伺服器有變化就會馬上同步消息。但這種方式對伺服器的壓力是十分大的,而且比較費客戶端的流量,就是不斷地向伺服器發送請求,但是這樣開發很簡單。
2、使用持久連接(Push)方式
就是客戶端和伺服器之間建立起一連接,這樣就可以實現消息的及時發送,而且這種方式開發難度大,開發周期較長。但是這是一種最常使用的方式,目前主流的消息推送都是通過這種方式做的。
選擇消息推送軟體,深圳極光就不錯。極光截至2020年12月,已有超169萬款APP在使用極光提供的服務。而且專注於為開發者提供穩定高效的消息推送、一鍵認證以及流量變現等服務,助力開發者的運營、增長與變現。
J. android中怎樣消息提示框
在Android開發中,顯示消息框有多種方法。
一、使用Toast顯示提示信息框
Toast是一種非常方便的提示消息框,他會在程序界面上顯示一個簡單的提示信息,這個提示信息框用於向用戶生成簡單的提示信息,它具有兩個特點。
1. Toast提示信息不會獲得焦點,
2. Toast提示信息過一段時間會自動消失
使用Toast來生成提示消息也非常簡單,只要如下幾個步驟:
1. 調用Toast的構造器或makeText方法創建一個Toast對象。
2. 調用Toast的方法來設置該消息提示的對齊方式,頁邊距,顯示內容等。
3. 調用Toast的show()方法,將他顯示出來。
Toast的功能和用法都比較簡單,大部分時候他只能顯示簡單的額文本提示如果應用需要顯示諸如圖片,列表之類的復雜提示,一般建議使用對話框完成,如果開發者確實想通過Toast來完成,也是可以的,Toast提供了一個setView()方法,該方法允許開發者自己定義Toast顯示的內容。
下面貼一個例子代碼:
package org.crazyit.toast;
import android.app.Activity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.Toast;
public class ToastTest extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button simple = (Button)findViewById(R.id.simple); //為按鈕的單擊事件綁定事件監聽器
simple.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View source) {
//創建一個Toast提示信息
Toast toast = Toast.makeText(ToastTest.this,
"簡單的提示信息"
// 設置該Toast提示信息的持續時間,
Toast.LENGTH_SHORT);
toast.show();
}
});
Button bn = (Button)findViewById(R.id.bn);
//為按鈕的單擊事件綁定事件監聽器
bn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View source) {
//創建一個Toast提示信息
Toast toast = Toast.makeText(ToastTest.this,
"帶圖片的的提示信息"
// 設置該Toast提示信息的持續時間 ,
Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER, 0, 0);
//獲取Toast提示里原有的View
View toastView = toast.getView();
//創建一個ImageView
ImageView image = new ImageView(ToastTest.this);
image.setImageResource(R.drawable.tools);
//創建一個LinearLayout容器
LinearLayout ll = new LinearLayout(ToastTest.this);
//向LinearLayout中添加圖片、原有的View
ll.addView(image);
ll.addView(toastView);
toast.setView(ll);
toast.show();
}
});
}
}
二、使用Builder對象
Builder dlg=new Builder(ServerInfoUpdate.this);
dlg.setTitle("Error");
dlg.setMessage("Unknown error.");
dlg.show();
三、使用AlertDialog對象
// 一個簡單的彈出對話框
return new AlertDialog.Builder(this).setTitle("這是一個簡單的彈出對話框的 Demo")
.create();
// 一個相對復雜的彈出對話框
return new AlertDialog.Builder(this)
.setTitle("標題") // 設置標題
// .setCustomTitle(View) // 以一個 View 作為標題
.setIcon(R.drawable.icon01) // 設置標題圖片
// .setMessage("信息") // 需要顯示的彈出內容
.setPositiveButton("確定", new OnClickListener() { // 設置彈框的確認按鈕所顯示的文本,以及單擊按鈕後的響應行為
@Override
public void onClick(DialogInterface a0, int a1) {
TextView txtMsg = (TextView) Main.this.findViewById(R.id.txtMsg);
txtMsg.append("單擊了對話框上的「確認」按鈕\n");
}
})
.setItems(R.array.ary, new DialogInterface.OnClickListener() { // 彈框所顯示的內容來自一個數組。數組中的數據會一行一行地依次排列
public void onClick(DialogInterface dialog, int which) {
}
})
// 其他常用方法如下
// .setMultiChoiceItems(arg0, arg1, arg2)
// .setSingleChoiceItems(arg0, arg1, arg2)
// .setNeutralButton(arg0, arg1)
// .setNegativeButton(arg0, arg1)
.create();
四、彈出進度條對話框
ProgressDialog progress = new ProgressDialog(this);
progress.setMessage("loading...");
return progress;