相关疑难解决方法(0)

Android为两种不同的产品风格制定了两种不同的启动器活动

这是我的情况

productFlavors {
    paid {
        applicationId "com.paid.app"
    }
    free {
        applicationId "com.free.app"
    }
}
Run Code Online (Sandbox Code Playgroud)

并且在paid风味上我需要与下面相比main或者free如下所述的不同的发射器活动

main/AndroidManifest.xml

  <activity
        android:name=".MainActivity"
        android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

paid/AndroidManifest.xml

  <activity
        android:name=".SecondMainActivity"
        android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
Run Code Online (Sandbox Code Playgroud)

当我开始在paid构建变体中安装应用程序时,它总是安装两个应用程序,即免费和付费但具有相同的应用程序名称.当我卸载任何一个时,应用程序都会被卸载.不仅应该paid变种构建付费应用程序和free变体构建一个免费的应用程序?以下是我的工作环境

  dependencies {
    classpath 'com.android.tools.build:gradle:1.3.0'
   }
  Android Studio 1.4 beta 2
Run Code Online (Sandbox Code Playgroud)

android gradle build.gradle

10
推荐指数
2
解决办法
5603
查看次数

启动Intent for activity-alias

我为具有不同元数据的活动设置了一些别名.

在这个元数据中,我设置了片段的名称,然后我通过反射加载它.
我不知道这是否是一个"干净"的解决方案,虽然通过使用Fragments并将功能放入其中我只有一个SuperActivity和2个空SubActivities来指定清单中的每个.

现在的问题是:我可以通过Intent启动别名吗?new Intent(Context, Class)将无法正常工作,因为我找不到通过intent调用设置元数据的方法.

我需要启动一个Intent <activity android:name="XXX"/>,有一个简单的方法吗?

通用活动及其别名,我需要后者的新意图:

    <activity
        android:name="ActivityList"
        android:label="@string/app_name"
        android:launchMode="singleTop"
        android:screenOrientation="portrait" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>

        <meta-data
            android:name="android.app.default_searchable"
            android:value="ActivityListItem" />
        <meta-data
            android:name="fragment"
            android:value="FragmentLocationList" />
    </activity>

    <activity-alias
        android:name="ActivityListItem"
        android:label="@string/locations"
        android:parentActivityName="ActivityList"
        android:targetActivity="ActivityList" >
        <intent-filter>
            <action android:name="android.intent.action.SEARCH" />
        </intent-filter>

        <meta-data
            android:name="android.app.searchable"
            android:resource="@xml/searchable" />
        <meta-data
            android:name="android.app.default_searchable"
            android:value="ActivityListItem" />
        <meta-data
            android:name="fragment"
            android:value="FragmentItemList" />
    </activity-alias>
Run Code Online (Sandbox Code Playgroud)

java android android-intent

5
推荐指数
1
解决办法
4969
查看次数

标签 统计

android ×2

android-intent ×1

build.gradle ×1

gradle ×1

java ×1