如果在启动活动时我在子活动(要启动的活动)中而不是在父活动(启动新活动的活动)中创建意图,则性能和优化方面有何不同。
实施例 -
ChildActivity.class
public static Intent createIntent(Context context) {
return new Intent(context, ChildActivity.class);
}
ParentActivity.class
startActivity(ChildActivity.createIntent(ParentActivity.this));
这是一个好习惯吗?如果从多个活动开始相同的活动,这种方法会有什么优势吗?
答案 0 :(得分:1)
我们可以使用这种做法,这样我们就可以通过调用静态方法从任何活动中启动Activity
,我们将保存大量重复的代码。对我来说,我创建了一个Navigator类,这个类将存储所有启动活动的方法:
public class Navigator {
public static final String VENUE_EXTRA = "venue_extra";
private Navigator() {
}
public static void navigateToOnboarding(Activity activity) {
Intent intent = new Intent(activity, OnboardingActivity.class);
ActivityCompat.startActivity(activity, intent, null);
}
public static void navigateToSharing(Activity activity, Venue venue) {
Intent intent = new Intent(activity, SharingActivity.class);
intent.putExtra(VENUE_EXTRA, venue);
ActivityCompat.startActivity(activity, intent, null);
}
public static void navigateToAppSetting(Activity activity) {
Intent intent = new Intent();
intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
intent.addCategory(Intent.CATEGORY_DEFAULT);
intent.setData(Uri.parse("package:" + activity.getPackageName()));
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
intent.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
activity.startActivity(intent);
}
}