【问题标题】:Start Activity of Main project from my library project从我的图书馆项目开始主项目的活动
【发布时间】:2014-09-01 11:44:58
【问题描述】:

我有 2 个项目。一个是我的主要项目(A),另一个是图书馆项目(B)。我想从位于 B 中的活动开始 A 中存在的活动。我该怎么做?

我试过startActivity(getApplicationContext(),B.class); ,但是

B.class

没有解决。

我怎样才能让我的图书馆项目开始我的主要项目的活动?

【问题讨论】:

  • 您是否在项目 A 的清单中添加了活动 B?
  • 你是否在主项目中添加了 Lib 项目
  • 有很多方法可以做你想做的事,但是这种方法不是正确的。它基本上是一个循环引用,这是你想要避免的。在库中声明一些监听器接口,并从主项目中设置一个监听器。
  • 我在 main 中添加了 lib 项目
  • 阅读这些文章Allowing Other Apps to Start Your ActivityStarting Another Activity。希望这能解决您的问题。

标签: android android-intent android-activity android-library


【解决方案1】:

您不需要使用意图过滤器。 Activity A中的代码可以使用

ComponentName cn = new ComponentName(this, "my.package.MyActivity.B");
Intent intent = new Intent().setComponent(cn);

startActivity(this, intent);

指定应启动的活动B。

【讨论】:

    【解决方案2】:

    您可以在您的活动的意图过滤器中添加自定义操作并通过指定操作来启动该活动

    <activity android:name="my.package.MyActivity">
        <intent-filter>
            <action android:name="my.package.action.MY_ACTION"/>
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="my.package"/>
        </intent-filter>
    </activity>
    

    使用此代码开始活动:

    final Intent intent = new Intent("my.package.action.MY_ACTION");
    intent.addCategory(getActivity().getPackageName());
    startActivity(getActivity(), intent);
    

    【讨论】:

    • 除了添加意图过滤器之外,没有其他方法了吗?
    猜你喜欢
    • 1970-01-01
    • 2012-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多