说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

ANDROID在service里面弹出对话框,但却没有显示

编辑:说三道四文库 发布时间:2018-04-21 02:20
HTML文档下载 WORD文档下载 PDF文档下载
android 对话框 AlertDialog.Builder 同样的代码,在anroid 4.3中能弹出对话框,在android4.4.4中就不能弹出对话框,请问是什么原因呢?
代码如下:

private void showPlacesLoginDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(getApplicationContext());
builder.setTitle(R.string.tips_3c);
builder.setMessage(R.string.offline_message_tips);
builder.setPositiveButton(R.string.ok, new OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
ActivityStackManager.getScreenManager()
.popAllActivityExceptOne(null);
Intent intent = getBaseContext().getPackageManager()
.getLaunchIntentForPackage(
getBaseContext().getPackageName());
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
}
});
AlertDialog dialog = builder.create();
dialog.setOnCancelListener(new OnCancelListener() {

@Override
public void onCancel(DialogInterface dialog) {
ActivityStackManager.getScreenManager()
.popAllActivityExceptOne(null);
Intent intent = getBaseContext().getPackageManager()
.getLaunchIntentForPackage(
getBaseContext().getPackageName());
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
}
});
dialog.getWindow()
.setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
dialog.show();
}
有没有错误日志呢?
service一般都不在UI线程中
4.4较之4.3,有一些地方做了很大的改变,其中一点是不允许用户向系统发送广播,我没有验证是不是这个原因引起的,代码的话,我对比了两个版本,只有WindowManager稍有不同,但并不影响该功能。
引用 3 楼 luosiye312 的回复:
4.4较之4.3,有一些地方做了很大的改变,其中一点是不允许用户向系统发送广播,我没有验证是不是这个原因引起的,代码的话,我对比了两个版本,只有WindowManager稍有不同,但并不影响该功能。



还有一种情况是像2楼所说,线程冲突,你可以试试另起一个线程来showDialog。
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘