终止应用程序后,AlertDialog不会出现在屏幕上

问题描述 投票:0回答:1

在打开wifi时警告用户;我想在屏幕上显示一个弹出窗口。我试图通过广播和服务来做到这一点。但是,该应用程序被终止后,它不起作用。

我的服务代码:

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;
            }
        }
    };
java android broadcastreceiver android-alertdialog
1个回答
0
投票

不幸的是,如果应用在最近的Android设备上被杀死,您将无法从后台启动活动。

我可以建议您做以下事情:1.终止应用程序后,检查您的服务是否继续运行。如果不是,则需要使其独立于应用程序生命周期。2.您可以显示吐司\全屏意图通知用户

© www.soinside.com 2019 - 2024. All rights reserved.