多窗口下的生命周期~

作者: 卡路fly | 来源:发表于2017-05-15 11:49 被阅读61次

我们都知道,使用多窗口的时候应用界面就会缩小很多,我们需要考录不同屏幕尺寸的适配模式,所以尽量不要出现屏幕尺寸变化过大界面无法正常显示的情况~

那么,
既然多窗口这么烦啊哈哈,
我们如何禁用呢?

禁用多窗口

<code>resizeableActivity</code>在<code>targetSdkVersion</code>为24以上才起作用,否则该属性无效。

// Application中
// false表示禁用,默认为true
android:resizeableActivity="false"

当<code>targetSdkVersion</code>低于24时,活动不允许横竖屏切换,应用也将不支持多窗口模式。

// 在activity中,portrait表示只支持竖屏,landscape只支持横屏
android:screenOrientation="portrait"

多窗口下的生命周期

// FirstApp
public class MainActivity extends AppCompatActivity {

    private static final String TAG = "FIRST_APP";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Log.d(TAG, "onCreate");
    }

    @Override
    protected void onStart() {
        super.onStart();
        Log.d(TAG, "onStart");
    }

    @Override
    protected void onResume() {
        super.onResume();
        Log.d(TAG, "onResume");
    }

    @Override
    protected void onPause() {
        super.onPause();
        Log.d(TAG, "onPause");
    }

    @Override
    protected void onStop() {
        super.onStop();
        Log.d(TAG, "onStop");
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.d(TAG, "onDestroy");
    }

    @Override
    protected void onRestart() {
        super.onRestart();
        Log.d(TAG, "onRestart");
    }
}
// SecondApp同上

启动FirstApp

FirstApp:onCreate() -> onStart() -> onResume()

当FirstApp处于onResume()状态时,进入多窗口模式,MainActivity经历了重新创建的过程。

FirstApp:onPause() -> onStop() -> onDestory() -> onCreate() -> onStart() -> onResume() ->onPause()

启动SecondApp

SecondApp:onCreate() -> onStart() -> onResume()

操作FirstApp

SecondApp:onPause()

FirstApp:onResume()

PS

  • 最好不要在活动的<code>onPause()</code>方法中处理视频播放器的暂停,应该在<code>onStop()</code>总进行处理,在<code>onStart()</code>中回复视频播放。
  • 在<code>AndroidManifest.xml</code>这对活动进行配置,活动不会被重建。将屏幕变化通知到Activity中的<code>onConfigurationChanged()</code>方法中。
// activity中
android:configChanges="orientation|keyboardHidden|screenSize|screenLayout"

相关文章

网友评论

    本文标题:多窗口下的生命周期~

    本文链接:https://www.haomeiwen.com/subject/pgocxxtx.html