首页 > 编程知识 正文

返回到app

时间:2023-05-03 07:23:23 阅读:280132 作者:191

做一些需求会涉及这样的功能。比如:


支付宝签到sdk集成,在我的app中点击支付宝签到,会跳转进入支付宝的签到活动页面。一般他们要在下面有一个“返回”的按钮,来返回我的应用。

但是,如果只是实现了“点击link打开自己的android app”并不能完全解决。因为,一般情况我们希望返回离开时的页面。


基本思路

外部浏览器进入只有一个入口activity。这个activity的作用只是判断并跳转到相应的流程。


<activity android:name="com.urcompany.urproduct.activity.GoBackActivity" android:launchMode="singleTask" android:noHistory="true" > <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="youyuan001" /> </intent-filter> </activity>





@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 判断是否需要重新登录 boolean toLogin = true; SessionInfo sessionInfo = getSessionInfo(); boolean isActived = isActived(this); if (sessionInfo != null && isActived) { toLogin = false; } if (toLogin) { Tools.autoLogin(this); } finish(); }


/** * 是否之前打开过,直接finish掉当前过渡页能否正常显示 * * @param context * @param packageName * @return */ private boolean isActived(Context context) { boolean isActived = false; String packageName = context.getPackageName(); ActivityManager am = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE); List<RunningTaskInfo> list = am.getRunningTasks(100); for (RunningTaskInfo info : list) { if (LogUtils.DEBUG) { LogUtils.e("info.numRunning="+info.numRunning); LogUtils.e("topActivity="+info.topActivity.getClassName()); LogUtils.e("baseActivity="+info.baseActivity.getClassName()); } if (info.topActivity.getPackageName().equals(packageName) && info.baseActivity.getPackageName().equals(packageName)) { int num = info.numRunning; if (num>1) { isActived = true; } break; } } return isActived; }


s

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。

  •  标签:  
  • app