为什么小米手机无法弹出后台service弹出dialog的AlertDialog

android不依赖具体activity弹出Dialog对话框,即全局性对话框
开始我想获取当前活动的activity实例,然后在依附其弹出dialog,不过没有找到获取的方法,只能获取到classname,后来找到了3个方法:
第一个方法利用系统弹出dialog,很牛x,不过样子有点丑
第二个方法是获取WindowManager,直接添加view
第三个方法是找一个透明的activity当背景。
第一种其实可以通过setview去改变外观,第二种和第一种最终是利用同一个原理,第三种实在是懒得找了,有时间的时候再补上吧。。。
--------------------------------------------------
先说具体做法,原因在其后给出:
写好Alter功能块后,在alter.show()语句前加入:
注:alter为AlertDialog类型对象
然后在AndroidManifest.xml中加入权限:
下面进行简单的解释:
如果只在Service中写入常在Activity中使用的创建Alter的代码,运行时是会发生错误的,因为Alter的显示需要依附于一个确定的Activity类。而以上做法就是声明我们要弹出的这个提示框是一个系统的提示框,即全局性质的提示框,所以只要手机处于开机状态,无论它现在处于何种界面之下,只要调用alter.show(),就会弹出提示框来。
&http://blog.csdn.net/twoicewoo/article/details/7448584
------------------------------------------------------------------
-------------------------------------------------------------------
final WindowManager wm = (WindowManager)
context.getSystemService("window");
& & WindowManager.LayoutParams
para = new WindowManager.LayoutParams();
& & para.height = -1;
& & para.width = -1;
& & para.format = 1;
& & para.flags =
LayoutParams.FLAG_FULLSCREEN |
LayoutParams.FLAG_LAYOUT_IN_SCREEN;
& & para.type =
LayoutParams.TYPE_SYSTEM_ALERT;
& & final View mView =
LayoutInflater.from(context).inflate(
R.layout.xxxxxxxxxx, null);
& & wm.addView(mView, para);
mView.findViewById(R.id.button).setOnClickListener(new
OnClickListener() {
& @Override
& public void onClick(View v) {
wm.removeView(mView);
参考&http://www.dewen.org/q/3746
---------------------------------------------
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。android在Service中弹出Dialog对话框,即全局性对话框
先说具体做法,原因在其后给出:
写好Alter功能块后,在alter.show()语句前加入:
alert.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
注:alter为AlertDialog类型对象
然后在Manifest.xml中加入权限:
&uses-permission android:name=&android.permission.SYSTEM_ALERT_WINDOW&&&/uses-permission&
下面进行简单的解释:
如果只在Service中写入常在Activity中使用的创建Alter的代码,运行时是会发生错误的,因为Alter的显示需要依附于一个确定的Activity类。而以上做法就是声明我们要弹出的这个提示框是一个的提示框,即全局性质的提示框,所以只要手机处于开机状态,无论它现在处于何种界面之下,只要调用alter.show(),就会弹出提示框来。查看:7141|回复:4
问题是:我调试的时候发现我定义的AlertDialog没有显示,于是单独写一个简单程序,还是没显示,网上查也没有相关的解答,先求教啊!
可能很弱智,请大家做好心理准备。
public class MainActivity extends ActionBarActivity
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
public void onClick(View v)
switch (v.getId())
case R.id.bt1:
new AlertDialog.Builder(this)
.setTitle(&标题&)
.setMessage(&简单消息框&)
.setPositiveButton(&确定&, null)
Manifest文件中部分内容:
& & &uses-sdk
& && &&&android:minSdkVersion=&8&
& && &&&android:targetSdkVersion=&14& /&
布局文件中的button定义如下:
& && &&&&Button
& && &&&android:id=&@+id/bt1&
& && &&&android:layout_width=&wrap_content&
& && &&&android:layout_height=&wrap_content&
& && &&&android:gravity=&center&
& && &&&android:textColor=&#ff333333&
& && &&&android:textSize=&18.0sp&
& && &&&android:text=&AlertDialog&/&
调试用的手机,Android 4.1的。
Button的ID都没有错啊,怎么点那个button都不显示,很是恼火,还望各位大大解答啊。
你没有设置点击事件的监听,点击肯定没反应···
中级工程师
你的问题就是楼上所说的,你还没有设置监听,
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//加上,纯手打,可能某些关键字错误
Button bt1 = (Button)this.findViewById(R.id.bt1);
bt1.setId(R.id.bt1);
同样的问题,你是怎么解决的,请赐教为什么小米手机无法弹出后台service的AlertDialog?
请将本文分享给你的朋友:
我的Android应用有个后台Service,在应用关闭后也会在后台运行,如果被激活了,会有铃声和对话框AlertDialog弹出。今天发现在小米1s手机上,程序有打开的情况下,铃声和对话框都能正常出现。如果在关闭应用的情况下被激活,只有铃声响起,而没有对话框。而且
【为什么小米手机无法弹出后台service的AlertDialog?】
请将本文分享给你的朋友:
------分隔线----------------------------为什么小米手机无法弹出后台service的AlertDialog? - 知乎23被浏览5006分享邀请回答34 条评论分享收藏感谢收起23 条评论分享收藏感谢收起查看更多回答1 个回答被折叠()}

我要回帖

更多关于 service中弹出toast 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信