工具方法
public static boolean isNeedRestart(Context context) {
ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningTaskInfo> tasks = am.getRunningTasks(1);
if (!tasks.isEmpty()) {
ComponentName topActivity = tasks.get(0).topActivity;
if (topActivity.getPackageName().equals(context.getPackageName())) {
// 若當前棧頂界面是AssistActivity,則須要手動關閉
if ("com.tencent.connect.common.AssistActivity".equals(topActivity.getClassName())) {
return true;
}
}
if ("com.tencent.mobileqq".equals(topActivity.getPackageName())) {
// 若當前棧頂界面是AssistActivity,則須要手動關閉
if ("com.tencent.mobileqq.activity.ForwardRecentActivity".equals(topActivity.getClassName())) {
return true;
}
}
}
return false;
}
複製代碼
activity onStart中執行
if (SNSUtils.isNeedRestart(this)) {//解決QQ分享返回之後 無響應問題
startActivity(Intent(this, StudyLengthActity::class.java)
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
)
}
複製代碼
注意 QQ的Scheme寫錯也容易形成分享後沒法返回本應用的問題