Как проверить базу данных в сервисе Android - PullRequest
0 голосов
/ 04 ноября 2018

Я разрабатываю Android уже месяц и, похоже, не могу найти решение с этим.

Я хочу отправить уведомление, если в базе данных есть какие-либо изменения, и, похоже, не могу найти ответ в Google. То, что я хочу знать: я должен запустить asynctask на службе? Или непосредственно запустить код внутри doInBackground для команды start в классе MyService? Как мне этого добиться?

Я пытался включить асинктазу в службу и использовать код на doInBackground, но не могу заставить его работать, поэтому, если вы, ребята, знаете ответ, вы можете опубликовать небольшой код, который бы помог мне? Спасибо

1 Ответ

0 голосов
/ 05 ноября 2018

`открытый класс AlertService расширяет Service { public AlertService () { }

@Override
public IBinder onBind(Intent intent) {
    throw new UnsupportedOperationException("Not yet implemented");
}
@Override
public void onCreate() {
    super.onCreate();

}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {

    StringRequest sr = new StringRequest(Request.Method.POST, "http://localhost/ServiceAlarme.php",
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    try
                    {
                        JSONObject js=new JSONObject(response);
                        String etat=js.getString("etat");
                        if(etat.equals("1"))
                        {
                            int NOTIFICATION_ID = 12345;
                            NotificationManager notif = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
                            Notification n = new Notification.Builder(getApplicationContext()).setContentTitle("SERVICE ALARME").setContentText("Alerte du ALARME du GAZ").setSmallIcon(R.mipmap.bubble).build();
                            n.defaults |= Notification.DEFAULT_SOUND;
                            n.flags |=Notification.FLAG_AUTO_CANCEL;
                            long[] vibrate = { 0, 100, 200, 300 };
                            n.vibrate = vibrate;
                            notif.notify(NOTIFICATION_ID,n);
                        }
                        else
                        {
                        }
                    }
                    catch(Exception e)
                    {
                    }
                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                }
            }) {
        @Override
        protected Map<String, String> getParams() throws AuthFailureError {
            Map<String, String> params = new HashMap<>();
            params.put("d","0");
            return params;
        }
    };
    RequestQueue rq= Volley.newRequestQueue(getApplicationContext());
    rq.add(sr);

    return super.onStartCommand(intent, flags, startId);
}

} `

...