Показывать пользовательские сообщения каждые 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;
}
}
}
}
Надеюсь, что это поможет вам.