要切换到最后打开的外部应用活动,可以使用以下代码示例:
import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.os.Bundle;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 切换到最后打开的外部应用活动
switchToLastRecentApp();
}
private void switchToLastRecentApp() {
// 获取最后打开的外部应用活动
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
PackageManager packageManager = getPackageManager();
ResolveInfo resolveInfo = packageManager.queryIntentActivities(intent, 0).iterator().next();
String packageName = resolveInfo.activityInfo.packageName;
String className = resolveInfo.activityInfo.name;
// 启动最后打开的外部应用活动
Intent switchIntent = new Intent();
switchIntent.setClassName(packageName, className);
switchIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(switchIntent);
}
}
上述代码中,switchToLastRecentApp()
方法用于获取最后打开的外部应用活动的包名和类名,并启动该活动。在 onCreate()
方法中调用该方法,即可在应用启动时切换到最后打开的外部应用活动。
请注意,在使用该代码示例时,需要在 AndroidManifest.xml 文件中添加以下权限: