سؤال

أنا جديد في تطوير Android.

يدور المشروع حول تنفيذ مجردة accouncountauthenticator مع ustructionTheredShenderedSyncadapter لمزامنة بيانات معينة على خادم مع مزود محتوى.

لقد صنعت كل شيء وإضافة حسابات ومزامنة العمل دون أي مشاكل.

لقد حاولت الآن إضافة شاشة تفضيل تمامًا كما هو مقترح في مرجع Android (ابحث عن AbstractActAcountAuthenticator ، يتم شرحه هناك) عبر XML مثل هذا:

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

يبدو أن الشاشة التفضيلية-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>

تُعرف الشاشة كيف يجب أن تكون ، ولكن هذه هي المشكلة: عندما أنقر على تفضيلات الشاشة بقصد يؤدي إلى تحطم النظام (سواء في المحاكي أو-ديزاير الخاص بي).

يقول لوجات:

Error/AndroidRuntime (18754): Android.Util.AndroundRuntimEexception: يتطلب استدعاء startActivity () من خارج سياق النشاط علامة flag_activity_new_task. هل هذا ماتريده حقا؟

(كامل logcat على pastebin)

هنا جزء من البيان ، حيث يتم تعريف النشاط:

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

شكرا لك بالفعل على مساعدتكم ، إيسنتان

ملاحظة: Keygen ليس مولدًا مفتاحًا ، فهذا يعني المزيد من المفاتيح. تم التعبير عنها بشكل متقلبة ؛)

هل كانت مفيدة؟

المحلول

واجهت نفس المشكلة واكتشفت للتو أنه إذا قمت بتغيير تفضيلاتك إلى:

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

ثم يعمل كما هو متوقع. هذا غريب لأنني أتوقع أن يقوم TerfecteCategory بتجميع العناصر كأطفالها ... ولماذا ينتج عن هذا الخطأ غير ذي صلة (؟)؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top