相关疑难解决方法(0)

当PreferenceScreen中的不同包的targetClass时,ActivityNotFoundException

应用程序的默认包是"example.app".

目标活动的包是"example.app.abc".

在java代码中调用"example.app.abc.TheActivity"的startActivity()就行了,

但在preference.xml上指定它不起作用:

<PreferenceScreen android:key="key"
    android:title="@string/title"
>
    <intent android:action="android.intent.action.MAIN"
        android:targetPackage="example.app.abc"
        android:targetClass="TheActivity"
/>
</PreferenceScreen>
Run Code Online (Sandbox Code Playgroud)

我试过android:targetClass ="example.app.abc.TheActivity",但它也不起作用.

是不是可以优先启动非默认包的活动?

android package preference

15
推荐指数
1
解决办法
3531
查看次数

我们如何控制Android同步适配器首选项?

在尝试编写自定义Android同步适配器时,我遵循了这一点.我成功地在常规设置中显示了一个条目(帐户设置),并使用上面示例中的以下代码片段.

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
    <PreferenceCategory android:title="General Settings" />
        <PreferenceScreen android:key="account_settings"
             android:title="Account Settings"  android:summary="Sync frequency, notifications, etc.">
             <intent android:action="fm.last.android.activity.Preferences.ACCOUNT_SETUP"
                 android:targetPackage="fm.last.android"
                 android:targetClass="fm.last.android.activity.Preferences" />
        </PreferenceScreen>
    </PreferenceCategory>
</PreferenceScreen>
Run Code Online (Sandbox Code Playgroud)

代码在常规设置中为我输入了一个条目(帐户设置):

单击帐户设置后,我收到如下错误,设备不必要地重新启动.

ERROR/AndroidRuntime(30057):android.util.AndroidRuntimeException:从Activity上下文外部调用startActivity()需要FLAG_ACTIVITY_NEW_TASK标志.这真的是你想要的吗?

我知道这个错误可以通过代码解决.由于"帐户设置"首选项是基于XML的代码,因此我遇到了错误.

  1. 任何人都可以帮助解决问题吗?

  2. 我们如何通过代码控制这些偏好?

android fatal-error accountmanager android-activity

7
推荐指数
2
解决办法
6921
查看次数