2010-12-03 275 views
7

我想弹出在特定时间对话框中的任何应用程序我的代码:弹出窗口

public class testPOPDialog extends Activity { 
/** Called when the activity is first created. */ 
private Handler mHandler = new Handler(); 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 


    mHandler.postDelayed(mUpdateTimeTask, 1000); 



} 
private Runnable mUpdateTimeTask = new Runnable() { 
     public void run() { 
      AlertDialog d = new AlertDialog.Builder(testPOPDialog.this) 
      .setTitle("tanchulai") 
      .setMessage("bucuo de tanchulai") 

      .create(); 

     d.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT); 
     d.show();  
     } 
    }; 

} 

它给我

12-03 10:12:18.162: ERROR/AndroidRuntime(571): android.view.WindowManager$BadTokenException: Unable to add window [email protected] -- permission denied for this window type 

这是什么权限 如果我删除d.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);我应用程序是正确的.....

回答

14

此权限添加到您的清单:

android.permission.SYSTEM_ALERT_WINDOW 
+0

嘿,你是惊人的,它的作品... – Piyush 2010-12-03 11:03:31

0

在您的menifest文件中使用您希望显示为弹出式窗口的文件.- >> android:theme =“@ android:style/Theme.Dialog”

+0

感谢您的回答,我的问题是要弹出的对话框不管什么节目正在运行,就像一个时钟应用程序c时间到了。它可以弹出一个对话框 – pengwang 2010-12-03 10:25:21

1

首先感谢给Mathias Lin

我是新来的Android所以这是很难我设置许可Mathias Lin的回答知道。 因为我不知道如何设置权限以及清单文件的位置。

最后我在Mathias Lin的回答帮助下完成了。所以我做出了详细的答案。


在mainfest文件使用

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/> 

<uses-sdk 
    android:minSdkVersion=... 
    android:targetSdkVersion=... /> 

<uses-sdk 
    android:minSdkVersion="7" 
    android:targetSdkVersion="16" /> 
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>