安卓开发中遇到的问题---多activity情况下,其他activity是什么时候启动的

最近写代码需要用到多个activity,然后就好奇一个问题,除了mainactivity以外,其他的activity是怎么启动的,退出之后是否还驻留?可能因为没有系统性学习安卓,都是边查边写,所以对这些不太清楚,今天刚好有机会试一下,记录一下。

测试这个的初衷,还是想试一下,多个activity共用一个socket的情况。

现在是两个activity共用一路socket,在oncreate的最后,运行创建线程接收数据的代码。

接收到数据的话,打印一行日志。

然后启动发送端进行测试。

测试的结果比较有意思,首先,App启动的时候,不能接收到信息,也就是说这时候其他activity并没有被激活。

然后跳转到对应页面的时候,就开始接收到消息了,也就是说这个时候oncreate才开始运行。

这里启动的代码用的是

startActivity(new Intent(this, ActivityFollowCar.class));

然后如果我返回上一页,这里用的是actionBar,设置了一个返回按钮

private void setCustomActionBar() {
    ActionBar actionBar = getSupportActionBar();  // 获取ActionBar
    if (actionBar != null) {
        actionBar.setTitle("关于");  // 设置ActionBar的标题
        // actionBar.setSubtitle("请详细阅读");  // 副标题
        actionBar.setDisplayHomeAsUpEnabled(true);  // 设置返回按钮
    }
}

// 监听返回按钮,如果点击返回按钮则关闭当前Activity
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
    if (item.getItemId() == android.R.id.home) {
        this.finish();
        return true;
    }
    return super.onOptionsItemSelected(item);
}

执行了这个操作之后,还是能收到的,也就是activity实际上还在运行。

然后又进入另一个activity,另一个activity也能收到消息了,这时候两个activity交替收到消息,但是顺序并不是严格的交替,有时候某个activity会连续收到两个。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值