![](/img/trans.png)
[英]The application crashes after the splash screen (When the menu screen supposed to appear)
[英]The AlertDialog does not appear on the screen when the application is killed
打開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;
}
主要活動:
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;
}
}
};
不幸的是,如果應用程序在最近的 Android 設備上被殺死,您無法從后台啟動活動。
我可以建議你做接下來的事情:1.檢查你的服務是否在殺死應用程序后繼續運行。 如果沒有 - 您需要使其獨立於應用程序生命周期。 2. 你可以顯示一個 toast \ 全屏意圖來通知用戶
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.