我有一个捕获警报/系统广播的接收器,然后它必须从服务器获取当前数据然后发送通知。我怎样才能做到这一点?请帮忙。谢谢。
答案 0 :(得分:1)
从广播接收器发起意向服务。从服务器下载带有HTTP请求的数据。然后解析响应并相应地发出通知。
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
ConnectivityManager connMgr = (ConnectivityManager) context.getSystemService(context.CONNECTIVITY_SERVICE);
final NetworkInfo wifi = connMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
final NetworkInfo mobile = connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (wifi.isConnected() || mobile.isConnected()) {
Intent intent=new Intent(context,DownloadService.class);
context.startService(intent);
}
else {
Toast.makeText(context, "No Network Connectivity", Toast.LENGTH_SHORT).show();
}
}
}
DownloadService类:
public class DownloadService extends IntentService{
String response = "";
private NotificationManager mNotificationManager;
public DownloadService() {
super("DownloadService");
}
@Override
protected void onHandleIntent(Intent intent) {
// Get the data
// Parse the data
// Put the notificaton using NotificationManager
}
}
答案 1 :(得分:0)
对于您的问题,您可以执行的是AsyncTask,它将使用OnReceive方法从您的服务器获取数据,当您在检索数据时获得成功时,您可以在那里设置通知缓存。
以下代码可用于显示通知
$("#menu-toggle").click(function(e) {
e.preventDefault();
$("#wrapper").toggleClass("toggled");
}).click(); //click triggered....