1住配置清单文件
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.joshua.pingmuqiehuan_demo"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity" android:label="@string/app_name" android:theme="@style/AppTheme.NoActionBar" android:configChanges="keyboardHidden|orientation|screenSize" >//不加这一行,屏幕翻转会执行生命周期方法 <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>2activity
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); //在没有配置的情况下 ,屏幕翻转会执行oncreate方法 if(this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { Log.i("info", "-------------------landscape"); } else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) { Log.i("info", "----------------portrait"); } } @Override protected void onStart() { super.onStart(); Log.i("info", "----------------onStart"); } @Override protected void onResume() { super.onResume(); Log.i("info", "----------------onResume"); } @Override protected void onDestroy() { super.onDestroy(); Log.i("info", "----------------onDestroy"); } @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); // 检测屏幕的方向:纵向或横向 if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { //当前为横屏, 在此处添加额外的处理代码 Log.i("info", "----------------当前为横屏, 在此处添加额外的处理代码"); } else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) { //当前为竖屏, 在此处添加额外的处理代码 Log.i("info", "----------------当前为竖屏, 在此处添加额外的处理代码"); } } }