tak jak napisał @piotrpo nie ma okien w tle oraz tylko jedna aktywność możne być na wierzchu (aktywna w UI), zmianę na pierwszym planie można wykonać w następujący sposób:
pierwsza metoda uzyskuje prawidłowy Intent z nazwy pakietu:
public Intent getIntent(String name) {
PackageManager packageManager = getApplicationContext().getPackageManager();
try {
PackageInfo pkginfo = packageManager.getPackageInfo(name, PackageManager.GET_ACTIVITIES);
Intent intent = packageManager.getLaunchIntentForPackage(name);
if (intent != null) {
intent = intent.cloneFilter();
intent.addFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);
} else if (pkginfo.activities != null && pkginfo.activities.length == 1) {
intent = new Intent(Intent.ACTION_MAIN);
intent.addFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);
intent.setClassName(pkginfo.packageName, pkginfo.activities[0].name);
}
return intent;
} catch (NameNotFoundException e) {
Log.i("Name Not Found", name);
return null;
}
}
druga metoda budzi proces i przenosi na pierwszy plan:
public boolean movetToFront(Intent intent) {
try {
startActivity(intent);
} catch (SecurityException e) {
Log.i("Info", "Security Exception");
return false;
} catch (ActivityNotFoundException e) {
Log.i("Info", "Activity Not Found");
return false;
}
return true;
}
EDIT
zapomniał bym o b.ważnej rzeczy, jak nie udaje się w pierwszej metodzie uzyskać Intenta to znaczy ze aktywność nie występuje launcher czyli "nie ma okna", w dużym uproszeniu