如何构建由服务启动的对话框?

时间:2012-01-05 20:23:07

标签: android alertdialog homescreen

我认为我的问题很容易解决。我有一个在后台运行的服务,并启动一个Intent,它启动一个活动,打开一个对话框。 她是我服务的代码:

Intent todialog = new Intent();
todialog.setClass(myService.this, openDialogInSleep.class);
todialog.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(todialog);

这是活动:

import android.app.Activity;
import android.app.AlertDialog;
import android.os.Bundle;

public class openDialogInSleep extends Activity{

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    new AlertDialog.Builder(openDialogInSleep.this)
    .setTitle("huhu")
    .setNeutralButton("close", null);
}   
}

最后是android清单:

<activity android:name=".openDialogInSleep" android:theme="@android:style/Theme.Dialog"></activity>

我的问题是,没有显示带有标题“huhu”和按钮“关闭”的对话框。只显示一个奇怪形式的对话框,它只显示我的activityname的一部分。 我忘记了什么? 请帮帮我。

MFG。亚历

2 个答案:

答案 0 :(得分:2)

您忘记在show()中链接以实际显示您的对话框。

new AlertDialog.Builder(openDialogInSleep.this)
    .setTitle("huhu")
    .setNeutralButton("close", new OnClickListener() {

        @Override
        public void onClick(DialogInterface arg0, int arg1) {
            openDialogInSleep.this.finish();
        }

    })
    .show();

答案 1 :(得分:1)

您遗漏的一件事是在AlertBuilder生成的对话框上调用show()

<强>更新

如果我理解正确,你不希望活动控制屏幕,而只是显示对话框?

如果是这种情况我认为不可能,那么创建类似效果的唯一方法是使用Toast消息。这可以从您的服务中启动,您根本不需要该活动。