在前台Android应用程序中如何显示AlertDialog?
我有一个程序负责在前台几秒钟后显示AlertDialog:在前台Android应用程序中如何显示AlertDialog?,android,android-alertdialog,Android,Android Alertdialog,我有一个程序负责在前台几秒钟后显示AlertDialog: ActivityManager am = (ActivityManager) getSystemServ(); if (am != null) { List< ActivityManager.RunningTaskInfo > taskInfo = am.getRunningTasks(1); if (taskInfo != null && !taskInfo.
ActivityManager am = (ActivityManager) getSystemServ();
if (am != null) {
List< ActivityManager.RunningTaskInfo > taskInfo = am.getRunningTasks(1);
if (taskInfo != null && !taskInfo.isEmpty()) {
if (taskInfo.get(0) != null && taskInfo.get(0).topActivity != null) {
if (!MY_CLASS_NAME.equalsIgnoreCase(taskInfo.get(0).topActivity.getClassName())) {
new AlertDialog.Builder(this).setMessage("AAAAAAAAAAAAAAAAAAAAAAAAAAAA?")
.setTitle("Message").setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
}
})
.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which){
}
}).show();
}
}
}
}
ActivityManager am=(ActivityManager)getSystemServ();
如果(am!=null){
列表taskInfo=am.getRunningTasks(1);
if(taskInfo!=null&&!taskInfo.isEmpty()){
if(taskInfo.get(0)!=null&&taskInfo.get(0).topActivity!=null){
如果(!MY_CLASS_NAME.equalsIgnoreCase(taskInfo.get(0.topActivity.getClassName())){
新建AlertDialog.Builder(this.setMessage)(“aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
.setTitle(“消息”).setPositiveButton(“是”,新的DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog,int其中){
}
})
.setNegativeButton(“否”,新的DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog,int which){
}
}).show();
}
}
}
}
但当应用程序转到前台时,AlertDialog没有显示!请帮帮我!谢谢 使用create()方法创建如下对话框:
new AlertDialog.Builder(this).setMessage("AAAAAAAAAAAAAAAAAAAAAAAAAAAA?")
.setTitle("Message").setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
}
})
.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which){
}
}).create().show();
我刚修改了你的代码。请检查并更新您的代码段:
ActivityManager am = (ActivityManager) getSystemServ();
if (am != null) {
List< ActivityManager.RunningTaskInfo > taskInfo = am.getRunningTasks(1);
if (taskInfo != null && !taskInfo.isEmpty()) {
if (taskInfo.get(0) != null && taskInfo.get(0).topActivity != null) {
if (!MY_CLASS_NAME.equalsIgnoreCase(taskInfo.get(0).topActivity.getClassName())) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("AAAAAAAAAAAAAAAAAAAAAAAAAAAA?")
.setTitle("Message").setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
}
})
.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which){
}
});
AlertDialog alert = builder.create();
alert.show();
}
}
}
}
ActivityManager am=(ActivityManager)getSystemServ();
如果(am!=null){
列表taskInfo=am.getRunningTasks(1);
if(taskInfo!=null&&!taskInfo.isEmpty()){
if(taskInfo.get(0)!=null&&taskInfo.get(0).topActivity!=null){
如果(!MY_CLASS_NAME.equalsIgnoreCase(taskInfo.get(0.topActivity.getClassName())){
AlertDialog.Builder=新建AlertDialog.Builder(此);
builder.setMessage(“aaaaaaaaaaaaaaaaaaaaaaaa?”)
.setTitle(“消息”).setPositiveButton(“是”,新的DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog,int其中){
}
})
.setNegativeButton(“否”,新的DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog,int which){
}
});
AlertDialog alert=builder.create();
alert.show();
}
}
}
}
您无法显示来自服务的对话框。相反,使用以对话框为主题的活动,将活动的主题(在清单中)设置如下:
android:theme="@android:style/Theme.Dialog"
另外,您不应该使用
TimerTask
,而是使用Handler
,如下所示:如果您只想显示AlertDialog而不设置其对AlertDialog对象的引用,那么您实际上不需要在show()
之前调用create()
。您可以直接调用show()
弹出对话框您确定您的id else条件正确引导到AlertDialog吗?您是否可以记录任何消息以验证条件是否正常工作?您在哪里运行此代码?在活动或服务中?@alexanderblom在服务中:我有一个timerTask timer.scheduleAtFixedRate(新timerTask(){showAlertDialog();}@Waqas:我已经调试过,并且系统输出!它正确地引导到AlertDialog!我认为您不能从服务中显示AlertDialog,因为它需要引用您的活动的上下文。相反,您应该依赖可以使用应用程序的上下文显示的Toast
弹出消息没有错误!只是仍然不能显示AlertDialog!如果应用程序在后台启动没关系,但前台不是你的意思是创建带有对话主题的新活动!并在前台应用程序时调用它?是的,这将按照你的意愿进行。你需要这样做,因为你无法从后台启动对话。谢谢你的帮助!我不能投票给你,因为我没有足够的声誉!)我们都是同龄人!:)不过,你应该能够接受答案,祝你有愉快的一天!
android:theme="@android:style/Theme.Dialog"