Показывать пользовательские сообщения каждые 10 секунд из фоновой службы

Я хочу реализовать функцию в своем приложении, чтобы показывать пользовательское сообщение через каждые 10-20 секунд, даже если приложение не запущено и телефон находится в состоянии пробуждения...

Я делюсь с вами скриншотом и приложением-справочником, которое имеет эти функции в своем приложении.

Название приложения Авто-Аткар для мусульман

2 ответа

Android-тост может работать в цикле времени? Вы должны зарегистрироваться, когда приложение будет свернуто, что обычно делается

public void onPause () {
}

Вы должны запустить службу в своем классе Application, чтобы запустить ее постоянно. Даже если пользователь закроет силу, он должен запуститься. Создайте свой собственный класс обслуживания:

public class Servicey extends Service {

@Nullable
@Override
public IBinder onBind(Intent intent) {
    return null;
}

@Override
public int begin(Intent intent, int flags, int beginId) {
    // do that shiny stuff with toasts
    return super.begin(intent, flags, beginId);
}

Затем начните свою службу на onCreate() вашей деятельности

startService(new Intent(this, Servicey.class));

Это пример кода для отправки сообщения.

new Thread(new Runnable() {
        @Override
        public void run() {
            // TODO Auto-generated method stub
            while (true) {
                try {
                    Thread.sleep(10000);
                    mHandler.post(new Runnable() {

                        @Override
                        public void run() {
                            // TODO Auto-generated method stub
                            // Write your code for message 
                             sendSMSMessage();
                        }
                    });
                } catch (Exception e) {
                    // TODO: handle exception
                }
            }
        }
    }).start();

protected void sendSMSMessage() {
      phoneNo = txtphoneNo.getText().toString();
      message = txtMessage.getText().toString();

      if (ContextCompat.checkSelfPermission(this,
         Manifest.permission.SEND_SMS)
         != PackageManager.PERMISSION_GRANTED) {
            if (ActivityCompat.shouldShowRequestPermissionRationale(this,
               Manifest.permission.SEND_SMS)) {
            } else {
               ActivityCompat.requestPermissions(this,
                  new String[]{Manifest.permission.SEND_SMS},
                  MY_PERMISSIONS_REQUEST_SEND_SMS);
            }
      }
   }

@Override
   public void onRequestPermissionsResult(int requestCode,String permissions[], int[] grantResults) {
      switch (requestCode) {
         case MY_PERMISSIONS_REQUEST_SEND_SMS: {
            if (grantResults.length > 0
               && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                  SmsManager smsManager = SmsManager.getDefault();
                  smsManager.sendTextMessage(phoneNo, null, message, null, null);
                  Toast.makeText(getApplicationContext(), "SMS sent.", 
                     Toast.LENGTH_LONG).show();
            } else {
               Toast.makeText(getApplicationContext(), 
                  "SMS faild, please try again.", Toast.LENGTH_LONG).show();
               return;
            }
         }
      }

   }

Надеюсь, что это поможет вам.

Другие вопросы по тегам