onPause和onStop的区别
1个回答
展开全部
onPause 用于由一个Activity转到另一个Activity、设备进入休眠状态(屏幕锁住了)、或者有dialog弹出时
onStop 用于不可见的Activity(有对话框弹出时,这时底下的activity仍然可见,所以此时onStop不会被调用)
从下面的日志日志可以看出区别:
1.从FirstActivity跳到SecondActivity时
FirstAcvity ---> onCreate
FirstAcvity --->onStart
FirstAcvity --->onResume
FirstAcvity --->onPause
SecondActivity--->onCreate
SecondActivity--->onStart
SecondActivity--->onResume
FirstAcvity --->onStop
现在给AndroidMainfest.xml中的SeconedActivity属性加入android:theme="@android:style/Theme.Dialog",则SeconedActivity将以对话框形式出现,不会对FirstAcvity形成遮盖.
这时的状态输出为:
FirstAcvity ---> onCreate
FirstAcvity --->onStart
FirstAcvity --->onResume
FirstAcvity --->onPause
SecondActivity--->onCreate
SecondActivity--->onStart
SecondActivity--->onResume
这时FirstAcvity比完全遮盖时少调用了onStop方法.
以下两种情况下 都只会触发onPause而不会触发onStop
1. 一个透明的包含Dialog的Activity 出现
2. 按poweroff锁屏
显示一个非activity的Dialog,是不会调用onPause和onStop的,因为此Dialog属于activity
onStop 用于不可见的Activity(有对话框弹出时,这时底下的activity仍然可见,所以此时onStop不会被调用)
从下面的日志日志可以看出区别:
1.从FirstActivity跳到SecondActivity时
FirstAcvity ---> onCreate
FirstAcvity --->onStart
FirstAcvity --->onResume
FirstAcvity --->onPause
SecondActivity--->onCreate
SecondActivity--->onStart
SecondActivity--->onResume
FirstAcvity --->onStop
现在给AndroidMainfest.xml中的SeconedActivity属性加入android:theme="@android:style/Theme.Dialog",则SeconedActivity将以对话框形式出现,不会对FirstAcvity形成遮盖.
这时的状态输出为:
FirstAcvity ---> onCreate
FirstAcvity --->onStart
FirstAcvity --->onResume
FirstAcvity --->onPause
SecondActivity--->onCreate
SecondActivity--->onStart
SecondActivity--->onResume
这时FirstAcvity比完全遮盖时少调用了onStop方法.
以下两种情况下 都只会触发onPause而不会触发onStop
1. 一个透明的包含Dialog的Activity 出现
2. 按poweroff锁屏
显示一个非activity的Dialog,是不会调用onPause和onStop的,因为此Dialog属于activity
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询