为什么alertDialog在Android应用程序中不起作用?

Jee*_*tel 0 android android-alertdialog

在进行一些初步工作时,我需要发一些警告短信.所以我在Android应用程序的主要活动中使用了以下代码.

AlertDialog alertDialog;
public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Log.i("main","=================init===============");
    alertDialog = new AlertDialog.Builder(this).create();
    alertDialog.setTitle("Title Info");
    alertDialog.setMessage("Initilizing so please wait....");
    alertDialog.show();
    // calling some initilizing function from jni which takes some time
    alertDialog.hide(); 
   }
Run Code Online (Sandbox Code Playgroud)

当我运行应用程序时,我在logcat中获得了该日志,但该警报对话框没有显示..我不知道为什么这不起作用?

sra*_*rth 5

这是因为当您向警告对话框询问.show()时,它告诉框架在下次系统获得控制时显示对话框(即在您的方法将控制权返回给应用程序之后),因此对话框显示不是立即完成.

因为你已经调用了show并且紧跟在这个方法中的一个隐藏,当应用程序尝试绘制它时,对话框状态将处于'hide'状态.

如果要显示并稍后隐藏对话框,则需要稍后调用hide,例如在计时器上或由于来自alertDialog的一些回调.(还要确保你在主线程中调用show和hide)