Pregunta

Soy nuevo en desarrollo androide.

El proyecto consiste en la implementación de un AbstractAccountAuthenticator con un AbstractThreadedSyncAdapter sincronizar ciertos datos en un servidor con un proveedor de contenido.

Me hizo todo y tanto la adición de cuentas y sincronización está funcionando sin problemas.

Ahora he intentado añadir un Preferencia pantalla como se sugiere en la referencia androide (búsqueda de AbstractAccountAuthenticator, se explica allí) a través de XML como esto:

autenticator.xml:

<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"
 />

Las miradas Preferencia-Screen-XML como este:

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>

La pantalla se promted como debe ser, pero y que es el problema: Cuando hago clic en la pantalla PREFERENCE con los Conduce intención de un accidente del sistema (tanto en el emulador y mi HTC-Desire).

Logcat dice:

ERROR / Android Runtime (18754): android.util.AndroidRuntimeException: Llamando startActivity () desde fuera Actividad de un contexto requiera la FLAG_ACTIVITY_NEW_TASK bandera. Es esto realmente lo que quieres?

(toda Logcat en Pastebin )

Aquí la parte del manifiesto, donde se define la actividad:

<activity android:name=".KeygenAct">
    <intent-filter>
     <action android:name="android.intent.action.VIEW" />
     <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>

El conjunto de pruebas de código (que es mi proyecto en lo esencial para encontrar el problema) es de encontrar en googlecode ( http://code.google.com/p/cleanproject/source/browse/ ) (Eclipse-Project)

Gracias ya por su ayuda, Esentian

p.s .: keygen no es un generador de claves, que significa más key_general. Un poco inartfully expresó;)

¿Fue útil?

Solución

que tenía el mismo problema y acaba de descubrir, que si cambia sus preferencias a:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
 <PreferenceCategory android:title="@string/pref_cat_general">
 </PreferenceCategory>
  <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>
</PreferenceScreen>

A continuación, funciona como se esperaba. Esto es raro porque yo esperaría PreferenceCategory para agrupar los elementos como sus hijos ... y por qué resultado con dicho error no relacionado (?)?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top