嘿,各位未来的安卓大神们,今天咱们不聊风花雪月,来聊点App里的“人情世故”。想象一下,你的App就像一个热闹的派对,而每一个页面(Activity)就是派对里一个个独立的房间。用户点击图标,进入大厅(主Activity),然后他想去书房(另一个Activity)看看,或者去游戏室(又一个Activity)玩两把。
那么问题来了:怎么从一个房间优雅地走到另一个房间?玩够了,又该怎么潇洒地关门离开,甚至还能带点“纪念品”回来?
这就是今天我们要深入唠嗑的主题:Activity的启动与关闭。别皱眉,这事儿可比你想象中有趣多了,简直就是一场代码界的“相亲与分手大戏”!
第一幕:初次见面,请多关照 —— Activity的“出生”与“相亲”方式
一个Activity,从它在AndroidManifest.xml里注册户口的那一刻起,就注定要走上舞台。但它的亮相方式,有两种截然不同的“剧本”。
剧本一:“直球式相亲”——显式启动
这就像你妈直接把你拉到隔壁老王家闺女面前:“喏,就是她,你俩认识一下。” 目标明确,毫不含糊。
在代码里,就是这么直接:
// 假设你在 MainActivity,现在想跳转到 ProfileActivity
Intent intent = new Intent(MainActivity.this, ProfileActivity.class);
startActivity(intent);
Intent(意图):它就是你的“媒人”,负责传递你的意愿。这里,媒人手里拿着明确的“地址”——ProfileActivity.class。startActivity(intent):媒人用力一推,“嘭”一声,你就从MainActivity的现场,瞬移到了ProfileActivity的闺房。
特点:简单、粗暴、高效。在自己家的App内部跳转,基本都用它。缺点:不够灵活,只能找自己认识的(同一个App内的Activity)。
剧本二:“海王式征友”——隐式启动
这就像你在朋友圈发了个状态:“今晚想找个能聊量子力学和吃火锅的地方,求推荐!” 你并不指定具体哪个人,而是抛出一个条件,谁符合条件,谁就可以来响应你。
在代码里,就是这么“海王”:
// 我想打开一个网页,但我不知道用户手机里装的是Chrome、QQ浏览器还是火狐
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("https://www.example.com"));
startActivity(intent);
这时,系统会弹出一个选择框,列出所有声明自己能处理ACTION_VIEW这个动作,并且能处理https协议数据的App(也就是各种浏览器),让你自己选。
搭建“隐式相亲”舞台的关键两步:
- 在
AndroidManifest.xml里为你的Activity发“征友广告”:

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



