Frage

Ich bin neu bei Android-Entwicklung.

Das Projekt ist über eine AbstractAccountAuthenticator mit einem AbstractThreadedSyncAdapter Durchführung bestimmte Daten auf einem Server mit einem Content-Provider zu synchronisieren.

habe ich alles und beide Hinzufügen von Konten und Synchronisierung werden ohne Probleme ausgeführt werden.

Jetzt habe ich versucht, ein Preference-Bildschirm wie vorgeschlagen im Android Verweis hinzuzufügen (für AbstractAccountAuthenticator suchen, es wird erklärt, es) über XML wie folgt aus:

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

Die Preference Screen-xml sieht wie folgt aus:

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>

Der Bildschirm ist promted, wie es sein soll, aber, und das ist das Problem: Wenn ich auf dem PreferenceScreen klicken mit der Absicht, es führt zu einem Absturz des Systems (sowohl im Emulator und mein HTC-Wunsch).

Logcat sagt:

ERROR / Android Runtime (18754): android.util.AndroidRuntimeException: Der Aufruf startActivity () von außen eine Aktivität erfordert Kontext der FLAG_ACTIVITY_NEW_TASK Flagge. Ist das wirklich das, was Sie wollen?

(whole Logcat auf Pastebin )

Hier ist der Teil des Manifests, in dem die Aktivität definiert:

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

Der gesamte Test-Code (es ist mein Projekt auf das Wesentliche, das Problem zu finden) bei Googlecode ( http://code.google.com/p/cleanproject/source/browse/ ) (Eclipse Project)

Vielen Dank schon für Ihre Hilfe, Esentian

P. S .: keygen kein Schlüsselgenerator, bedeutet dies mehr key_general. Ein bisschen inartfully ausgedrückt;)

War es hilfreich?

Lösung

Ich hatte das gleiche Problem und habe gerade herausgefunden, dass, wenn Sie Ihre Einstellungen zu ändern:

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

Dann funktioniert es wie erwartet. Das ist seltsam, weil ich PreferenceCategory zu Gruppenelemente wie seine Kinder erwarten würde ... Und warum hat es zur Folge haben mit solchen nicht verwandten (?) Fehler entdeckt?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top