I have an application A
that wants to start an Activity
in another application, B
, which I don't own and cannot edit.
If B
is already running and visible in recent apps, there's no problem in executing the wanted Activity
of B
using an Intent
.
If B
isn't running, I use the following code to execute its main Activity
first, and then the one I want to execute:
String bPackage = "com.example.applicationb";
PackageManager pm = getPackageManager(this);
Intent main = pm.getLaunchIntentForPackage(bPackage);
Intent wanted = new Intent();
wanted.setPackage(bPackage);
wanted.setComponent(new ComponentName(bPackage,bPackage+".WantedActivity"));
main.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
wanted.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
wanted.setExtras(mPreviouslyCreatedBundle);
startActivity(main);
startActivity(wanted);
The wanted Activity
executes, but after some seconds I get an error and it stops working. Am I setting the Intent
s in a wrong way?