android 锁屏的生命周期_Android Activity生命周期和锁定/解锁设备

I just found that when the device has lock screen enabled, the followings happen.

For this activity, android:screenOrientation="landscape" is set in the manifest.

Then I perform the followings with my phone in a portrait mode.

The user opens an activity.

onCreated() is called

onStart() is called

onResume() is called

The user LOCKS the device

4.5 onPause is called()

onDestroy() is called

onCreate() is called

onStart() is called

onResume() is called

8.5 onPause is called()

The user UNLOCKS the device

onResume() is called

onDestroy() is called

onCreate() is called

onStart() is called

onResume() is called.

Okay, I don't understand why 6,7,8 are executed after the screen goes off..

Also I don't understand why 11, 12, 13, 14 are executed.

Do some weird things happen when I lock and unlock the device? I am suddenly confused with the activity lifecycle.. Can anyone clarify this?

Attache the code and the log msg

package com.example.wf;

import android.app.Activity;

import android.os.Bundle;

import android.util.Log;

public class MainActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

Log.d("log", "oncreate");

}

@Override

protected void onResume() {

super.onResume();

Log.d("log", "onresume");

};

@Override

protected void onStart() {

super.onStart();

Log.d("log", "onstart");

};

@Override

protected void onPause() {

super.onStart();

Log.d("log", "onpause");

};

@Override

protected void onDestroy() {

Log.d("log", "ondestroy");

super.onDestroy();

};

}

Log msgs

10-05 23:11:07.994: D/log(23810): oncreate

10-05 23:11:07.994: D/log(23810): onstart

10-05 23:11:07.994: D/log(23810): onresume

// LOCK DEVICE

10-05 23:11:19.957: D/log(23810): ondestroy

10-05 23:11:20.007: D/log(23810): oncreate

10-05 23:11:20.007: D/log(23810): onstart

10-05 23:11:20.007: D/log(23810): onresume

// UNLOCK DEVICE

10-05 23:11:57.407: D/log(23810): onresume

10-05 23:11:57.537: D/log(23810): ondestroy

10-05 23:11:57.587: D/log(23810): oncreate

10-05 23:11:57.587: D/log(23810): onstart

10-05 23:11:57.587: D/log(23810): onresume

解决方案

On phones (or tablets with the orientation locked portrait), the lock screen is portrait only. Therefore when the device is locked, the device automatically switches to portrait mode (causing 6, 7, 8, and 9). When the device is unlocked, then onResume() is called as your Activity is becoming visible, but you are again transitioning between portrait and now locked in landscape, so the Activity gets destroyed and recreated in landscape.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值