如何获取父包的主要Activity类?

时间:2013-08-13 20:03:58

标签: java android class android-activity

我创建了一个库。它将附加到不同的项目。我需要在我的库类中引用当前应用程序的主要活动(该应用程序托管我的库)。可以在getPackageManager()

的结果中不生成循环

4 个答案:

答案 0 :(得分:1)

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

修改

  

'android os'如何知道我的活动首先可见   启动任何申请

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

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

可以是您的切入点。通常它只是每个应用程序一个,但你可以拥有任意多个。

答案 1 :(得分:0)

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

转到项目属性 - &gt; Android并确保选中“Is Library”。

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

转到项目属性 - &gt; Java构建路径 - &gt;项目。点击“添加”,然后选择您的图书馆。

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

答案 2 :(得分:0)

  1. 您的库(即com.example)应该是Eclipse中的“isLibrary”或Android Studio中的“is Library Module”。
  2. 要从“上层项目”调用库中的任何组件,可以直接调用“com.example.component”。即Intent i = new Intent(this,com.example.component.class);
  3. 研究员@lifeeson106在Eclipse中编写的内容。在Android Studio中,您需要另一个教程。

答案 3 :(得分:0)

如果您真的想要“库”来调用项目的组件(任何人,无论是否使用您的库),您必须为组件定义“intent-filter”。以下是活动的常用方法:

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