PushService是根据你的设备号来准确定位你的手机的,它是从SharedPreferences取得该设备号的,所以你得事先将你的设备号保存在SharedPreferences中,如下:
class PushTask extends AsyncTask<Void, Integer, Boolean> {
@Override
protected Boolean doInBackground(Void... params) {
// 启动PUSH服务
Editor editor = getSharedPreferences(PushService.TAG, MODE_PRIVATE)
.edit();
String deviceID = Secure.getString(getContentResolver(),Secure.ANDROID_ID);
editor.putString(PushService.PREF_DEVICE_ID, deviceID);
editor.commit();
try {
PushService.actionStart(getApplicationContext());
} catch (Exception e) {
// TODO: handle exception
// Log.i(tag, "启动PUSH服务失败.");
return false;
}
return true;
}
@Override
protected void onCancelled() {
super.onCancelled();
}
@Override
protected void onPostExecute(Boolean result) {
Log.i(tag, result?"启动PUSH服务成功.":"启动PUSH服务失败.");
}
@Override
protected void onPreExecute() {
// 预处理
}
@Override
protected void onProgressUpdate(Integer... values) {
// 更新进度
}
}
PushTask task=new PushTask(); task.execute();
如果要关闭服务,只需要将下面的代码添加到想要的地方:
PushService.actionStop(getApplicationContext());
至于服务器端代码,我们使用php写的,这里请参考Android推送通知指南
另一篇关于推送:
Android Push Notification实现信息推送使用
云巴https://yunba.io/是基于MQTT协议、采用Erlang/OTP架构设计的实时通信系统。
实现Android推送方面,客户端在集成我们的 Android SDK后,服务端便可通过 SDK 或使用 RESTful API,向 Android 客户端发消息。
为了保证消息的实时性,我们Android SDK 会启动一个后台的 Service,创建并保持到云巴服务器的长连接,从而保证了消息推送的实时性。
同样为了保证消息能够被送达,我们 SDK 支持 离线消息 的功能,可保证消息送达客户端。pushservice 也就是说,在推送消息时,如果客户端当前不,消息将暂存在云巴服务器上(多达 50 条,长达 15 天)。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-39680-2.html
孤独暗自泪下来
说白了