我是android開發新手。PreferenceScreen - <intent .../> - 例外 - FLAG_ACTIVITY_NEW_TASK
該項目是關於使用AbstractThreadedSyncAdapter實現AbstractAccountAuthenticator以將服務器上的某些數據與內容提供者進行同步。
我做了所有事情,同時添加帳戶和同步正在運行沒有任何問題。
autenticator.xml:
現在我已經嘗試添加偏好屏幕仿如建議在android參考通過這樣的XML(搜索AbstractAccountAuthenticator,它是有解釋)
<account-authenticator xmlns:android="http://schemas.android.com/apk/res/android"
android:accountType="typeOfAuthenticator"
android:icon="@drawable/icon"
android:smallIcon="@drawable/miniIcon"
android:label="@string/label"
android:accountPreferences="@xml/account_preferences"
/>
的偏好屏幕的XML看起來是這樣的:
account_preferences.xml:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory android:title="@string/pref_cat_general">
<PreferenceScreen android:key="@string/pref_cat_scr_keygen" android:title="@string/pref_cat_scr_keygen_title" android:summary="@string/pref_cat_scr_keygen_summary">
<intent android:action="android.intent.action.VIEW" android:targetPackage="com.android.clean" android:targetClass="com.android.clean.KeygenAct" />
</PreferenceScreen>
</PreferenceCategory>
</PreferenceScreen>
屏幕被提示應該是怎麼回事,但這就是問題所在:當我點擊PreferenceScreen時,它會導致系統崩潰(在模擬器和HTC-Desire中) 。
logcat的說:
ERROR/AndroidRuntime(18754): android.util.AndroidRuntimeException: 調用startActivity()從一個活動上下文之外 要求 FLAG_ACTIVITY_NEW_TASK標誌。這 真的是你想要的嗎?
這裏的清單,其中活動性被定義的一部分:
<activity android:name=".KeygenAct">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
整個測試代碼(這是我的必需品項目找到問題)是在googlecode找到(http://code.google.com/p/cleanproject/source/browse/)(Eclipse-Project)
謝謝你的幫助, Esentian
p.s .: keygen不是密鑰生成器,它意味着更多的key_general。 inartfully表達的位;)
謝謝你的回答!我正在將最後幾周搬到新的公寓,直到今天才離線。 這個解決方案就像是一種解決方法,但是謝謝,現在一切運行良好。 – Esentian 2010-10-08 15:46:11
上帝該死的,哦,Android,只需通過刪除 PreferenceCategory>它終於工作。非常感謝你! – Defuera 2014-09-26 12:38:37
它不適合我。 PreferenceScreen不顯示它是否在PreferenceCategory之外。 – 2016-07-13 10:05:01