2013-06-23 66 views

回答

2

根據sdk文檔,沒有(公共)Intent.FLAG_FLOATING_WINDOW常量,因此編譯錯誤。據推測,它是專門針對您嘗試構建的自定義ROM?

你不能繞過像這樣的編譯錯誤。但是,由於我們談論的是一個常數,因此您可以將該參考替換爲實際值。所有由Intent類定義的標誌常量只是int s,但您必須知道該值才能夠替換它。你應該能夠在你指的自定義ROM的源代碼中找到它。

例如,假設含量的不同將有如下定義:

public static final int FLAG_FLOATING_WINDOW = 1234; 

然後一個有效addFlags()呼叫使用這個值應該是這樣的:

addFlags(1234); 

,將建立,不論常量定義在Intent


編輯:

問題涉及到偏執的Android,爲其FLAG_FLOATING_WINDOW聲明如下。

/** 
* If set, this intent will always match start up as a floating window 
* in mutil window scenarios. 
*/ 
public static final int FLAG_FLOATING_WINDOW = 0x00002000; 

來源:Intent.java (@ParanoidAndroid)

+0

聽起來像它可以工作。所以對於普通標誌來說,是存儲在android.jar中的int值還是像框架一樣的其他地方。 –

+0

@LukePring:所有常量聲明都可以在Intent.java的源文件中找到。我在SlimRoms倉庫中快速瀏覽了一下(它看起來像是你所指的自定義倉庫?),但似乎無法在[包含的Intent類中]的任何地方找到FLAG_FLOATING_WINDOW(https:/ /github.com/SlimRoms/frameworks_base/blob/jb4.2/core/java/android/content/Intent.java#L3094)(在任何分支機構中)。 –

+0

nope,偏執android。我剛剛找到了整數。謝謝你們:) –