[英]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.