解决方法
在用户正在做的事情中弹出一个对话框是一个非常用户的敌对事情.如果他们在玩“愤怒的小鸟”并且你们刚刚毁掉他们的射击怎么办?只有平台可以而且应该侥幸逃脱.
除非您的应用当前拥有控制权(您的活动处于运行状态),否则请使用Google预期的通知区域.然后只需使用该活动的上下文来弹出AlertDialog().您可以通过覆盖onResume()和onPause()来检测活动是否正在运行 – 中间发生的任何事情都是您的活动时间.
可以像这样弹出AlertDialog:
new AlertDialog.Builder(Ctxt) //Use an activity object here .setMessage(R.string.MyMessageID) //Provide a message here... A string or a string ID will do .setCancelable(true) //If you want them to be able to dismiss with a Back button .setNegativeButton(R.string.IDS_NO,null) //No action on NO,right? .setPositiveButton(R.string.IDS_YES,OnYesClickListener) //Plug your own listener... .create() .show();
对于简单的消息/是/否对话框,AlertDialog就足够了.对于更复杂的UI,从Dialog派生一个类并设计自己的布局.