Android在Service中弹出对话框(Dialog),即全局性对话框

本文介绍如何在Android的Service中弹出全局对话框。关键在于设置Dialog的窗口类型为WindowManager.LayoutParams.TYPE_SYSTEM_ALERT,并在AndroidManifest.xml中添加SYSTEM_ALERT_WINDOW权限。这样即使在Service中,也能显示不受当前界面限制的对话框。
摘要由CSDN通过智能技术生成

先说具体做法,源代码在其后给出:
写好Alter功能块后,在alter.show()语句前加入:
alert.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
注:alter为AlertDialog类型对象
然后在AndroidManifest.xml中加入权限:
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"></uses-permission>


点击进入: 品牌服饰鞋包9.9元特价包邮抢购:http://shop109590806.taobao.com/


下面进行简单的解释:
如果只在Service中写入常在Activity中使用的创建Alter的代码,运行时是会发生错误的,因为Alter的显示需要依附于一个确定的Activity类。而以上做法就是声明我们要弹出的这个提示框是一个系统的提示框,即全局性质的提示框,所以只要手机处于开机状态,无论它现在处于何种界面之下,只要调用alter.show(),就会弹出提示框来。


MainActivity如下:

 
 
 
  1. package cn.testservice1;
  2.  
  3. import android.os.Bundle;
  4. import android.view.View;
  5. import android.view.View.OnClickListener;
  6. import android.widget.Button;
  7. import android.app.Activity;
  8. import android.content.Intent;
  9. /**
  10. * Demo描述:
  11. * 在服务中显示对话框
  12. *
  13. * 核心提示:
  14. * 为Dialog设置:
  15. * dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
  16. *
  17. * 注意权限:
  18. * <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
  19. */
  20. public class MainActivity extends Activity {
  21. private Button mStartButton;
  22. private Button mStopButton;
  23. private Intent intent;
  24. @Override
  25. protected void onCreate(Bundle savedInstanceState) {
  26. super.onCreate(savedInstanceState);
  27. setContentView(R.layout.main);
  28. init();
  29. }
  30. private void init(){
  31. intent=new Intent
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值