使用activity中遇到的问题及解决办法

activity的使用

写在前文的话,最近的项目里用到的基本上全是Activity,在使用的时候会出现很多小问题,在这里总结一下。方便以后自己掌握,同时希望也能帮助到需要帮助的人


  • 我们都知道Activity是用户可视化的窗口,程序与用户交互都是依托于activity的,一旦程序中使用太多,我们在back时,很多时候不能得到我们想要的结果。这时我们可以操作的办法往往有各种各样的。

问题

  • 在多个activity进行跳转,当点击物理按键返回时(程序中无返回按钮),这时会发现之前的界面一直存在(某些界面我们只需显示一次,然后关闭)

解决办法之一

  • 深刻理解activity的启动模式(standard),在某些activity注册时设置相应的启动模式,可以得到部分解决
  • 如:扫描二维码进入显示界面
    现象:开始没有设置启动模式时,扫描进入,返回再次扫描进入,再返回进入,最终的结果是按返回键是程序一直在这两个界面之间跳转,进入几次就重复几次。
    原因:我们创建一个activity时默认standard方式启动
  • 解决办法:设置为singleTask方式启动,问题解决
<activity .ScanToDisplayActivity" 
            android:launchMode="singleTask"/>

问题

  • 在多个activity进行跳转,在某个界面动态注册广播返回时,提示没有解除绑定

解决办法

  • 深刻理解activity的生命周期,并不是每个生命周期方法在进入时都会调用的

    *问题产生原因:在onResume()方法中注册广播,在onDestroy()中解绑

protected void onResume() {

        // 注册广播

        receiver = new MyReceiver();

        filter.addAction(Constants.ACTION_ACCEPT);

        registerReceiver(receiver, filter);
}


@Override
protected void onDestroy() {
    // 解除绑定
    super.onDestroy();
    unregisterReceiver(receiver);
}
  • 解决办法:在onResume()方法中注册(同上),在onPause()方法中解除绑定

    protected void onPause() {

    super.onPause();
    unregisterReceiver(receiver);
    

    }
    解决收工,如果大家有什么高招请指教。

另附一关于activity四种启动模式的博客,多谢博主
(http://blog.csdn.net/knlnzhao/article/details/8005277)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值