代码之家  ›  专栏  ›  技术社区  ›  Ghostx0

运行多个进程的Android清单这种方法有效还是正确?

  •  0
  • Ghostx0  · 技术社区  · 6 年前

    哦,这是我的清单样本:

            <?xml version="1.0" encoding="utf-8"?>
    <manifest
        xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.x.x">
    
        <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
        <uses-permission android:name="android.permission.INTERNET"/>
    
        <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:supportsRtl="true"
            android:theme="@style/AppTheme">
            <activity
                android:name="com.x.x.Welcome_"
                android:label="@string/app_name"
                android:screenOrientation="portrait"
                android:theme="@style/AppTheme.NoActionBar">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN"/>
    
                    <category android:name="android.intent.category.LAUNCHER"/>
                </intent-filter>
            </activity>
            <activity
                android:name="com.x.x.MainActivity_"
                android:screenOrientation="portrait"
                android:launchMode="singleTop"/>
            <activity
                android:name="com.x.x.ImageActivity_"
                android:screenOrientation="portrait"
                android:theme="@style/AppTheme"/>
            <activity
                android:name="com.x.x.SettingsActivity_"
                android:screenOrientation="portrait"
                android:theme="@style/AppTheme"/>
            <activity
                android:name="com.x.x.CollectionActivity_"
                android:screenOrientation="portrait"
                android:theme="@style/AppTheme"/>
            <activity
                android:name="com.x.x.HowtoActivity_"
                android:screenOrientation="portrait"
                android:theme="@style/AppTheme.NoActionBar"/>
            <activity
                android:name="com.x.x.ABrowseACF_"
                android:screenOrientation="portrait"
                android:theme="@style/AppTheme"/>
            <activity
                android:name="com.x.x.ABrowseACC_"
                android:screenOrientation="portrait"
                android:theme="@style/AppTheme"/>
        </application>
    
    </manifest>
    

    现在,由于我的应用程序的工作方式,我还需要大约10个活动来处理功能。这是正确的做事方式吗?只是批量添加到清单?因为我尝试加载一个意图,但没有声明活动和OFC,它破坏了应用程序,因为它找不到它。

    这基本上是“从这些位置读取”的情况吗?我只是在考虑表演。在通过intent调用之前,它们不会加载吗?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Link182    6 年前

    每个活动都必须在清单中声明 因为每个活动都是由android系统从清单文件实例化的,所以这种方法允许您从每个地方(另一个应用程序、adb shell等)作为独立模块启动每个活动。活动只有在您(或系统)未通过intent调用时才会加载,所以不要担心性能,android会处理好这一点,即使是不可见的未使用的活动也可以由系统回收(当然,如果活动没有特殊标记 rules )。有很多解决方案可以避免应用程序中的多个活动,只需使用片段、对话框或自定义视图即可。

    但如果你喜欢多个活动,你可以将你的应用程序拆分为多个gradle模块(android库),每个模块都会包含自己的活动。是一个很酷的编程概念,代码必须在独立的逻辑组中进行调制。