intentservice启对话框,显示不出来??

sophia3377 2012-05-22 05:38:03
将一个xml layout以对话框的形式显示出来

在service里,起这个对话框是完全没有问题的。

但是如果是在intentservice里,一样的启对话框代码,全运行,不报错,就是不显示这个对话框,这是为什么呢?
求大神解答啊!!!!

intentservice是service的子类,这两个除了在消息处理上有点不同,这个为啥差别这么大呢????急啊!!!

intentservice里的部分代码:


protected void onHandleIntent(Intent intent){
_DownloadApkService.requestService();
}

然后在requestService()里会启一个对话框,显示对话框的代码如下:

	public void showUpdateDialog(){
View v = View.inflate(context, R.layout.update, null);
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("yyyyyyyy");
String new_version_desc = getSharePreferences(HybridGlobalDefination._New_Version_Desc, "New Version, download now?");
builder.setMessage(new_version_desc);
builder.setView(v);
tDialog = builder.create();
tDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
tDialog.show();
WindowManager.LayoutParams lp = tDialog.getWindow().getAttributes();
WindowManager wm = (WindowManager)context.getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
if(display.getHeight() > display.getWidth()){
lp.width = (int)(display.getWidth() * 1.0);
}
else{
lp.width = (int)(display.getWidth() * 0.5);
}
tDialog.getWindow().setAttributes(lp);
Button bt1 = (Button)tDialog.getWindow().findViewById(R.id.button2);
bt1.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v) {
downloadStatusBar();
tDialog.dismiss();

}
});
Button bt2 = (Button)tDialog.getWindow().findViewById(R.id.button1);
bt2.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v){
tDialog.dismiss();
}
});

}


急求原因啊!!
我真的试过了,只要改成Service就一点问题没有,换成IntentService就显示不出来了。。本人分不太多。谢了!!!
...全文
163 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Wedcel 2014-01-02
  • 打赏
  • 举报
回复
intentservice执行完毕后会自动调用stopself方法结束自己 所以不能用
sophia3377 2012-05-23
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
引用 2 楼 的回复:

引用楼主 的回复:
将一个xml layout以对话框的形式显示出来

在service里,起这个对话框是完全没有问题的。

但是如果是在intentservice里,一样的启对话框代码,全运行,不报错,就是不显示这个对话框,这是为什么呢?
求大神解答啊!!!!

intentservice是service的子类,这两个除了在消息处理上有点不同,这个为……
[/Quote]

嗯。我目前就是这么用。但是想换成我问的那方法。好像不行,我不改了。就改成让activity听广播吧。
allen526 2012-05-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

引用楼主 的回复:
将一个xml layout以对话框的形式显示出来

在service里,起这个对话框是完全没有问题的。

但是如果是在intentservice里,一样的启对话框代码,全运行,不报错,就是不显示这个对话框,这是为什么呢?
求大神解答啊!!!!

intentservice是service的子类,这两个除了在消息处理上有点不同,这个为啥差别这么大呢????急啊……
[/Quote]
让它发广播给activity去启动对话框呢
sophia3377 2012-05-22
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
将一个xml layout以对话框的形式显示出来

在service里,起这个对话框是完全没有问题的。

但是如果是在intentservice里,一样的启对话框代码,全运行,不报错,就是不显示这个对话框,这是为什么呢?
求大神解答啊!!!!

intentservice是service的子类,这两个除了在消息处理上有点不同,这个为啥差别这么大呢????急啊!!!

intent……
[/Quote]我也发现是这个问题了那我就想用INTENTSERVICE来显示一个对话框怎么办呢我
fhhdg 2012-05-22
  • 打赏
  • 举报
回复
Intentservice
子线程不能操作UI线程。

80,493

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧