アプリケーションを開くとすぐに、次の行を開始します。
Intent intent = new Intent(this, MyIntentService.class);
startService(intent);
そして、ここに私の IntentService クラスがあります:
public class MyIntentService extends Service {
SharedPreferences prefs;
public static String prefName = "SecretFile";
public static String version = "56";
public final static int uniqueID = 1394885;
public void onCreate() {
super.onCreate();
prefs = this.getSharedPreferences(prefName, MODE_PRIVATE);
version = prefs.getString("Version", "1");
System.out.println(version);
calllsharedprefs();
new loadSomeStuff().execute();
}
public class loadSomeStuff extends AsyncTask<String, Integer, String> {
protected void onPreExecute() {
}
@Override
protected String doInBackground(String... params) {
//starting script
JSONObject json = jArray.getJSONObject(i);
json.getString("Version");
Editor editoi = prefs.edit();
editoi.putString("Version", json.getString("Version"));
//finishing script
}
protected void onProgressUpdate(Integer... progress) {
}
@SuppressWarnings("deprecation")
protected void onPostExecute(String result) {
if (prefs.getString("Version", "1").equals(version)) {
} else {
System.out.println(prefs.getString("Version", "1"));
NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
nm.cancel(uniqueID);
Intent intent = new Intent(MyIntentService.this, Drawer.class);
PendingIntent pi = PendingIntent.getActivity(
MyIntentService.this, 0, intent, 0);
String body = "New Updates are available!";
String title = "Price list changed";
Notification n = new Notification(
R.drawable.about, body,
System.currentTimeMillis());
n.setLatestEventInfo(MyIntentService.this, title, body, pi);
n.defaults = Notification.DEFAULT_ALL;
nm.notify(uniqueID, n);
version = prefs.getString("Version", "1");
}
}
}
基本的に、 phpMyAdminのテーブルからバージョン フィールドを取得しています。バージョン コードが同じ場合、通知を送信しない場合は通知を送信せず、phpmyadmin バージョンと同じに設定しますが、アプリケーションを開くとコード起動して通知が送信されますが、テーブルの値を再編集して9のように設定すると、機能せず、通知が再度送信されません! 何をすべきか?ありがとう =)