2010-12-03 218 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"/>