[英]How to send Time Triggered Notification using parse.com in Android?
我已经使用解析实现了推送通知。 但我想在特定时区的特定时间向用户发送通知。 我知道我们可以从仪表板一次向所有设备发送通知。 但是我们可以从应用程序中触发通知吗?
现在我只检查系统日期并显示我的Parse类匹配的数据。
但我想在特定时间向用户发送通知!
获取系统日期的代码!
Calendar c = Calendar.getInstance();
SimpleDateFormat df = new SimpleDateFormat("ddMMyyyy");
final String formattedDate = df.format(c.getTime());
检查日期并显示相关信息的代码!
ArrayList<HashMap<String, String>> _temparrayList = HelperFile
.loadArrayListFromFile(MainActivity.this, HelperFile.DAILYVERSE);
if (_temparrayList != null) {
for (int i = 0; i < _temparrayList.size(); i++) {
HashMap<String, String> map = _temparrayList.get(i);
if (formattedDate.equals(map.get("date"))) {
verse = map.get("verse");
book = map.get("book");
book_text.setText(book);
verse_text.setText(verse);
} else if (new_formattedDate.equals(map.get("date"))) {
verse = map.get("verse");
book = map.get("book");
book_text.setText(book);
verse_text.setText(verse);
}
else {
value = true;
new RemoteDataTask().execute();
}
}
} else {
verse_text.setText("Data Yet To Update, Please Refresh");
refresh.setVisibility(View.VISIBLE);
new RemoteDataTask().execute();
}
从Parse进行查询的Async任务!
private class RemoteDataTask extends AsyncTask<Void, Void, Void> {
@Override
protected void onPreExecute() {
super.onPreExecute();
if (value == false) {
mProgressDialog = new ProgressDialog(MainActivity.this);
mProgressDialog.setTitle("Daily Verse Is Updating");
mProgressDialog.setMessage("Loading...");
mProgressDialog.setIndeterminate(false);
mProgressDialog.show();
}
}
@Override
protected Void doInBackground(Void... params) {
// Locate the class table named "Country" in Parse.com
ParseQuery<ParseObject> query = new ParseQuery<ParseObject>(
"DailyVerse");
query.orderByDescending("date");
try {
ob = query.find();
} catch (ParseException e) {
Log.e("Error", e.getMessage());
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void result) {
// Retrieve object "name" from Parse.com database
ArrayList<HashMap<String, String>> arrayList = new ArrayList<HashMap<String, String>>();
for (ParseObject country : ob) {
HashMap<String, String> map = new HashMap<String, String>();
String book = (String) country.get("book");
String verse = (String) country.get("verse");
String date = (String) country.get("date").toString();
map.put("book", book);
map.put("verse", verse);
map.put("date", date);
arrayList.add(map);
}
HelperFile.writeArrayListToFile(arrayList, MainActivity.this,
HelperFile.DAILYVERSE);
if (value == false) {
mProgressDialog.dismiss();
}
}
}
所以问题是如何在每天上午8:00向用户发送通知?
你将在你的Android应用程序中构建一种“工作者”或“工作”。 我认为这不是最好的选择。 但要做到这一点,你应该实现+ service并调用startService方法。 我已经使用过Parse,我通常通过我的webservice按下发送来发送用户通知,而我的worker / job在我的webservice(后端应用程序)中。
希望它对你有用! =)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.