2013-08-03 88 views
1

考慮在Android活性以下無用代碼:ACTION_QUERY_PACKAGE_RESTART不能得到解決或無法在現場

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    String s1 = Intent.ACTION_PACKAGE_CHANGED; 
    String s2 = Intent.ACTION_QUERY_PACKAGE_RESTART; 
} 

爲什麼Eclipse中引發ACTION_QUERY_PACKAGE_RESTART不能得到解決或無法在現場錯誤?我的意思是,不是Intent class定義的兩個字符串?

應用程序使用:

<uses-sdk 
    android:minSdkVersion="14" 
    android:targetSdkVersion="17" /> 

而是把兩個17不會改變Eclipse的行爲。

+0

它是'Intent.ACTION_PACKAGE_RESTARTED'嗎? – Nizam

+0

所有我能找到的是,ACTION_QUERY_PACKAGE_RESTART沒有在android文檔中給出。它仍然是Intent.java的一部分。 ACTION_PACKAGE_CHANGED是文檔的一部分(http://developer.android.com/reference/android/content/Intent.html#ACTION_PACKAGE_CHANGED) –

+0

@Nizam不,它是ACTION_QUERY_PACKAGE_RESTART,因爲它被寫入。 – virtualdj

回答

0

它從SDK中隱藏,因爲它僅用於內部。這就是爲什麼它在上面說「隱藏:」。 grepcode的格式很難看清楚。

+0

謝謝,但是是否可以忽略該錯誤並進行編譯(例如創建與使用最終字符串的源代碼稍有不同的類時)? – virtualdj

+0

在您的示例中不確定您的意思,但是沒有在Android SDK中公開的任何內容都不打算供第三方開發人員使用,因爲API可能會更改(這會導致您的應用程序中斷),或者因爲功能僅限於系統應用程序。這個意圖似乎只能被系統應用程序接收,因爲這些文檔會說「詢問系統服務...」。我假定系統服務意味着通過Context.getSystemService獲得的服務。 – Khasm

+0

另外,在使用Android SDK時,您並不是針對該代碼構建的,而是針對由僅包含非隱藏字段/方法/類的代碼生成的存根構建的。該變量在您的應用程序的編譯時根本不存在。 – Khasm

相關問題