下面列出了android.support.v4.app.ActivityCompat#finishAffinity ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
/**
* 回到主界面,可在Splash外的其他界面使用
* @param activity
*/
public static void upToMain(Activity activity) {
Intent intent = new Intent(activity, MainActivity.class);
// NavUtils.navigateUpTo(activity, intent);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
if (activity instanceof MainActivity) {
((MainActivity) activity).close();
}
activity.startActivity(intent);
activity.overridePendingTransition(0, 0);
if (!(activity instanceof MainActivity)) {
ActivityCompat.finishAffinity(activity);
activity.overridePendingTransition(0, android.R.anim.fade_out);
}
}
/**
* 返回上一个Activity
*
* @param old 当前Activity的Context
* @param mBundle
*/
public static void back(Context old, Bundle mBundle, boolean isAffinity) {
Activity activity = (Activity) old;
Intent intent = activity.getIntent();
if (mBundle != null) {
mBundle.putBoolean(BUNDLE_ACTIVITY_UPDATE, true);
intent.putExtras(mBundle);
}
if (isAffinity) {
activity.setResult(Activity.RESULT_CANCELED);
ActivityCompat.finishAffinity(activity);
} else {
activity.setResult(Activity.RESULT_OK, intent);
activity.finish();
}
}
/**
* 回到主界面,可在Splash外的其他界面使用
* @param activity
*/
public static void upToMain(Activity activity) {
Intent intent = new Intent(activity, MainActivity.class);
// NavUtils.navigateUpTo(activity, intent);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
if (activity instanceof MainActivity) {
((MainActivity) activity).close();
}
activity.startActivity(intent);
activity.overridePendingTransition(0, 0);
if (!(activity instanceof MainActivity)) {
ActivityCompat.finishAffinity(activity);
activity.overridePendingTransition(0, android.R.anim.fade_out);
}
}
@Override
public void onBackPressed() {
super.onBackPressed();
if (status.equals("check")) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
finishAffinity();
} else {
ActivityCompat.finishAffinity(this);
}
}
}
/**
* 启动主界面,可在Splash界面或出现异常时使用.
* @param context
*/
public static void launchMain(Context context) {
// context.getPackageManager().resolveActivity(
// new Intent(Intent.ACTION_MAIN).setPackage(context.getPackageName())
// .addCategory(Intent.CATEGORY_DEFAULT),
// 0);
boolean inActivityContext = context instanceof Activity;
Intent intent = new Intent(context, MainActivity.class);
if (!inActivityContext) {
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
}
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
if (context instanceof MainActivity) {
((MainActivity) context).close();
}
context.startActivity(intent);
if (context instanceof Activity) {
if (context instanceof SplashActivity)
((Activity) context).overridePendingTransition(android.R.anim.fade_in, 0);
((Activity) context).overridePendingTransition(0, 0);
}
if (context instanceof Activity && !(context instanceof MainActivity)) {
ActivityCompat.finishAffinity((Activity) context);
((Activity) context).overridePendingTransition(0, android.R.anim.fade_out);
}
}
/**
* 启动主界面,可在Splash界面或出现异常时使用.
* @param context
*/
public static void launchMain(Context context) {
// context.getPackageManager().resolveActivity(
// new Intent(Intent.ACTION_MAIN).setPackage(context.getPackageName())
// .addCategory(Intent.CATEGORY_DEFAULT),
// 0);
boolean inActivityContext = context instanceof Activity;
Intent intent = new Intent(context, MainActivity.class);
if (!inActivityContext) {
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
}
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
if (context instanceof MainActivity) {
((MainActivity) context).close();
}
context.startActivity(intent);
if (context instanceof Activity) {
if (context instanceof SplashActivity)
((Activity) context).overridePendingTransition(android.R.anim.fade_in, 0);
((Activity) context).overridePendingTransition(0, 0);
}
if (context instanceof Activity && !(context instanceof MainActivity)) {
ActivityCompat.finishAffinity((Activity) context);
((Activity) context).overridePendingTransition(0, android.R.anim.fade_out);
}
}
static void finishWizard (Activity context) {
setShouldShowWizard(false, context);
ActivityCompat.finishAffinity(context);
context.startActivity(new Intent(context,
MainActivity.class));
}
public void close() {
hookFinishToMoveBack = false;
ActivityCompat.finishAffinity(this);
overridePendingTransition(0, android.R.anim.fade_out);
}
public void close() {
hookFinishToMoveBack = false;
ActivityCompat.finishAffinity(this);
overridePendingTransition(0, android.R.anim.fade_out);
}
private void restartApp() {
ActivityCompat.finishAffinity(getActivity());
startActivity(new Intent(getActivity(), MainActivity.class));
}