AlertDialog не появляется на экране, когда приложение убито - PullRequest
0 голосов
/ 05 мая 2020

Предупреждает пользователя при включении Wi-Fi; Я хочу показать всплывающее окно на экране. Я пытался сделать это с помощью трансляции и сервиса. Однако после закрытия приложения это не работает.

Мой сервисный код:

public class AlertService extends Service {

private static Context context;

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    final AlertDialog alertDialog = new AlertDialog.Builder(AlertService.this).create();
    alertDialog.setMessage("Nek Test");
    alertDialog.setTitle("Reminder");
    alertDialog.setButton("Got it", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            dialog.dismiss();
        }
    });

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        alertDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY);
    }else{
        alertDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
    }
    new CountDownTimer(1000, 1000) {

        public void onTick(long millisUntilFinished) {

        }
        public void onFinish() {
            alertDialog.show();
        }
    }.start();
    return flags;
}

MainActivity:

private BroadcastReceiver wifiStateReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        int wifiStateExtra = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE,WifiManager.WIFI_STATE_UNKNOWN);

        switch (wifiStateExtra){
            case WifiManager.WIFI_STATE_ENABLED:
                this.context = context;
                startService(new Intent(context, AlertService.class));
            break;
            case  WifiManager.WIFI_STATE_DISABLED:
            break;
            }
        }
    };

1 Ответ

0 голосов
/ 05 мая 2020

К сожалению, вы не можете начать активность в фоновом режиме в случае, если приложение было убито на последних Android устройствах.

Я могу порекомендовать вам сделать следующее: 1. Проверьте, продолжает ли ваша служба работать после убийства приложение. Если нет - вам нужно сделать его независимым от жизненного цикла приложения. 2. вы можете показать тост \ полноэкранный режим, чтобы уведомить пользователя

...