我有两个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。 我该怎么办?
答案 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);
希望这对你有所帮助。