Android 设置和不设置 android:targetSdkVersion的区别

最近在帮客户调试一个项目,要求用户按下电源键(锁屏)后调用一个SDK关闭接口。

在正常的manifest文件中我们通常会做类似设置:

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />

我们来看看按下电源键后Activity的状态变化:

可以看到,按下电源键后,显示执行了onPuase,接着是onStop,然后才收到按下电源键的系统广播。

那么,如果把

android:targetSdkVersion
去掉,改成这样:

    <uses-sdk
        android:minSdkVersion="8"/>


会怎样呢,请看如下:



我去,居然不走onStop了!

深层原因还在研究中。

----------------------------------------------------------------------------------------------------------------------

原因找到了:

The change in lifecycle came with Honeycomb, or when changing an app that targeted sdk 10 or lower to one that targets sdk 11 or higher.

If an Android project declares a targetSDKversion of 10 or less, then when the power button is clicked, onPause is called, but not onStop. This is contrary to what many people think. With targetSDKversion = 11 or higher, however, onPause then onStop will be called when the power button is clicked.





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值