我认为我的问题很容易解决。我有一个在后台运行的服务,并启动一个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。亚历
答案 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
消息。这可以从您的服务中启动,您根本不需要该活动。