Question

Je suis novice en développement Android.

Le projet est sur la mise en œuvre d'un AbstractAccountAuthenticator avec un AbstractThreadedSyncAdapter pour synchroniser certaines données sur un serveur avec un fournisseur de contenu.

J'ai fait tout et les ajouter des comptes et la synchronisation fonctionne sans aucun problème.

Maintenant, je l'ai essayé d'ajouter une préférence à l'écran comme suggéré dans la référence Android (recherche de AbstractAccountAuthenticator, il est expliqué là-bas) via XML comme ceci:

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

Le look-xml Preference écran comme ceci:

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>

L'écran est promted comment il devrait être, mais c'est le problème: Lorsque je clique sur le PREFERENCE avec elle conduit les intention à un crash du système (à la fois dans l'émulateur et mon HTC Desire-).

Logcat dit:

  

ERREUR / AndroidRuntime (18754):   android.util.AndroidRuntimeException:   Appel startActivity () de l'extérieur   d'un contexte d'activité exige la   drapeau FLAG_ACTIVITY_NEW_TASK. Est-ce   vraiment ce que vous voulez?

(entier Logcat sur pastebin )

Voici la partie du manifeste, où l'activité est définie:

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

Le test de code complet (il est mon projet sur l'essentiel pour trouver le problème) est de trouver à googlecode ( http://code.google.com/p/cleanproject/source/browse/ ) (Eclipse-projet)

Merci déjà pour votre aide, Esentian

p.s .: ne est pas un keygen générateur de clé, cela signifie plus key_general. Un peu malhabilement exprimé;)

Était-ce utile?

La solution

i eu le même problème et je viens de découvrir, que si vous changez vos préférences à:

<?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>

Ensuite, il fonctionne comme prévu. C'est bizarre parce que je me attends PreferenceCategory aux éléments du groupe comme ses enfants ... Et pourquoi est-il le résultat avec une telle erreur sans rapport (?)?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top