-1

我创建了一个库。它将附加到不同的项目。我需要在我的库类中引用当前应用程序的主要活动(这个应用程序托管我的库)。有可能在 ? 的结果中不产生循环getPackageManager()

4

4 回答 4

1

Android中没有“主Activity类”的概念。您很可能是指启动器使用的 AndroidManifest 文件中引用的 Activity intent-filter。它可以是其中之一。可以没有。它可以在单个应用程序中很多。用来PackageManager获取它们

编辑

当我启动任何应用程序时,“android os”如何知道活动首先是可见的

您在清单文件中设置它。任何活动:

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

可以成为你的切入点。通常每个应用程序只有一个,但您可以拥有任意数量的应用程序。

于 2013-08-13T20:08:49.770 回答
0
  1. 您的库(即 com.example)在 Eclipse 中应该是“isLibrary”,在 Android Studio 中应该是“is Library Module”。
  2. 为了从“上层项目”中调用库中的任何组件,您可以直接调用“com.example.component”。即
    意图 i = new Intent(this, com.example.component.class);
  3. 研究员@lifeson106 在 Eclipse 中编写的内容。在 Android Studio 中,您需要另一个教程。
于 2013-08-13T20:23:26.853 回答
0

您需要确保您的库项目设置为库:

转到 Project Properties -> Android 并确保选中“Is Library”。

现在,您需要在其他项目中引用您的库项目:

转到项目属性 -> Java 构建路径 -> 项目。单击“添加”并选择您的库。

您可能需要清理项目,尤其是在对库项目进行更改之后。

于 2013-08-13T20:11:02.737 回答
0

如果您真的想“库”调用项目的组件(任何人,无论是否使用您的库),您必须为您的组件定义“意图过滤器”。以下是 Activity 的常用方式:

    <activity
        android:name="com.gmail.app.activities.SplashActivity"
        android:label="@string/app_name"
        android:screenOrientation="portrait"
        android:theme="@style/NoActionBar" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        <intent-filter>
            <action android:name="com.gmail.app.SplashActivity" />

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

在您的代码(库)中,您可以这样做:

    Intent i = new Intent("com.gmail.app.SplashActivity");
    startActivity(i);
于 2013-08-13T20:48:12.130 回答