Android中关于登陆拦截逻辑流程(Intent传递使用步骤)
Android中关于登陆拦截逻辑流程(Intent传递使用步骤)
问题:
我们在开发中经常遇到这样的需求,当前用户在A界面点击按钮想跳到C界面,但是该用户当前并未登陆账户,此时我们就想让用户在跳到C界面之前跳到B界面进行登陆操作,当登陆成功时候直接跳到C界面,整个思路流程如下图所示;
解决方式一:
使用Intent 传递:
A界面(MainActivity):
//点击按钮相应的代码 //使用 startActivityForResult 直接跳到C界面 Intent intent = new Intent(MainActivity.this, CActivity.class); startActivityForResult(intent, 100);
@Override public void onActivityResult(int requestCode, int resultCode, Intent data) { //开启C的界面 RESULT_OK即代表已做登陆处理 if (requestCode == 100 && resultCode == Activity.RESULT_OK) { Intent intent = new Intent(MainActivity.this, CActivity.class); intent.putExtra("isLoading", false); startActivity(intent); } }
C界面(CActivity)操作:
//首先要判断是否处于登陆状态 如果未登陆则使用以下代码 Intent intent = getIntent(); //请求转发 intent.setFlags(intent.getFlags() | Intent.FLAG_ACTIVITY_FORWARD_RESULT); intent.setClass(CActivity.this, BActivity.class); startActivity(intent); //退出当前界面 finish();
B界面(BActivity)操作:
//进行登陆操作 成功后 setResult(Activity.RESULT_OK); finish();
解决方式二:
我们当然也可以在A界面直接判断当前是否登陆,如果已经登陆那么直接跳转到C,如果未登陆那么跳转到B界面,再登陆,在登陆成功的条件下跳转到C界面(条件判断可以通过Intent携带)。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
webview 常用方法
webview 常用方法 packagecom.orgcent.webview; importandroid.app.Activity; importandroid.os.Bundle; importandroid.webkit.JsPromptResult; importandroid.webkit.JsResult; importandroid.webkit.WebChromeClient; importandroid.webkit.WebSettings; importandroid.webkit.WebView; importandroid.webkit.WebViewClient; importandroid.webkit.WebSettings.LayoutAlgorithm; publicclassAndroidWebViewActivityextendsActivity{ @Override publicvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setConte...
- 下一篇
深入理解Binder
深入理解Binder 一句话概括进程通信:进程间的数据传递。 Binder是Anroid系统里最重要的进程通信方式,很多文章会直接用代码、原理类的文字进行描述,对于接触Android与Linux不是特别深的人来说,特别晦涩难懂,经常是看了这忘了那里,其实探索Binder通信的一条核心就是:Client如何找Server,将请求发送给Server,Server再将结果返回给Client。 Binder基于OpenBinder,被引入后添加了很多Android特性,比如,在驱动层添加了ServiceManager逻辑,搭建起ServiceManger-Clien-Server框架模型。Android基于Linux内核,其进程管理模型完全沿用了Linux的进程/线程模型,进程划分为用户空间与内核空间,在用户空间,进程间是无法通信的,只有通过内核空间才能传递数据。 Binder自身的意义倾向于通信,只是进程间通信的一种方式,但是在Android系统中,Binder被提到了核心高度,Android基本可以看做基于Binder模型实现的是一种Android RPC模型(远程过程调用协议 Remot...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS6,CentOS7官方镜像安装Oracle11G
- Mario游戏-低调大师作品
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS关闭SELinux安全模块
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果