startActivity不会启动其他应用的新活动

时间:2015-03-05 10:06:55

标签: android android-intent android-activity

我有两个Android应用程序(即BIApp和EApp),我正试图从BIApp打开EApp。 EApp有两个活动,一个是MainActivity,另一个是LandingPageActivity。

当我尝试使用startActivity(intent)启动MainActivity时,如果我尝试启动LandingPageActivity,它可以正常工作。 startActivity(intent)什么也没做。

如果EApp在后台打开,那么startActivity(intent)也适用于LandingPageActivity。

以下是我正在使用的代码段。

Intent intent = new Intent();
intent.setClassName("com.pkg.eapp", "com.pkg.eapp.LandingPageActivity");
startActivity(intent);

我想启动LandingPageActivity。 我该怎么办?

5 个答案:

答案 0 :(得分:2)

试试这个:

Intent intent = new Intent();
intent.setComponent(new ComponentName("com.pkg.eapp", "com.pkg.eapp.LandingPageActivity"));
startActivity(intent);

并添加

android:exported="true"

并在intent-filter添加

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

清单中LandingPageActivity的声明。

答案 1 :(得分:1)

试试这个,这对我有用

Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setComponent(new ComponentName("com.pkg.eapp", "com.pkg.eapp.LandingPageActivity"));
startActivity(intent);

答案 2 :(得分:1)

阅读how to allow Other Apps to Start Your Activity


您只需要将android.intent.category.DEFAULT类别添加到您的活动清单上。如下所示

<activity android:name="com.pkg.eapp.LandingPageActivity">
    <intent-filter>
        <action android:name="com.pkg.eapp.action.OPEN_LANDING_PAGE" />
        <category android:name="android.intent.category.DEFAULT"/>
    </intent-filter>
</activity>

并将其命名为

Intent intent = new Intent("com.pkg.eapp.action.OPEN_LANDING_PAGE");
intent.setComponent(new ComponentName("com.pkg.eapp", "com.pkg.eapp.LandingPageActivity"));
// Or intent.setPackage("com.pkg.eapp");
startActivity(intent);

答案 3 :(得分:0)

我从未这样做,但可能是其他应用无法访问目标网页活动。在您的EApp清单中,您是否为LandingPage活动设置了这样的intent过滤器?

<intent-filter>
    <action android:name="com.pkg.eapp.LandingPageActivity" />
    <category android:name="android.intent.category.DEFAULT" />
</intent-filter>

答案 4 :(得分:0)

试试这个:

Intent LaunchIntent =  getPackageManager().getLaunchIntentForPackage("com.pkg.eapp.LandingPageActivity");
startActivity(LaunchIntent);

希望这对你有所帮助。