Android生命周期以及手机横竖屏生命周期

做Android开发已经一年零五个月了,好多都是会做但不精通,从今天开始我要精通,所以一点一点回顾,一点一点记录,举一反三!直接贴代码

package com.example.dell.myapplication;

import android.app.Activity;
import android.content.pm.ActivityInfo;
import android.content.res.Configuration;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import java.text.SimpleDateFormat;
import java.util.Date;
import static android.content.ContentValues.TAG;

/**
 * Android生命周期以及手机横竖屏生命周期分析
 * hyl
 */

/**
 * 手机横竖屏
 * 03-21 13:07:33.772 2109-2109/com.example.dell.myapplication E/ContentValues: onPause:
 03-21 13:07:33.773 2109-2109/com.example.dell.myapplication E/ContentValues: onStop:
 03-21 13:07:33.774 2109-2109/com.example.dell.myapplication E/ContentValues: onDestroy:
 03-21 13:07:33.818 2109-2109/com.example.dell.myapplication E/ContentValues: onCreate:
 03-21 13:07:33.819 2109-2109/com.example.dell.myapplication E/ContentValues: onStart:
 03-21 13:07:33.820 2109-2109/com.example.dell.myapplication E/ContentValues: onResume:
 */

/**
 * 启动activity
 * 03-21 13:30:43.565 28872-28872/com.example.dell.myapplication E/ContentValues: onCreate:
 03-21 13:30:43.568 28872-28872/com.example.dell.myapplication E/ContentValues: onStart:
 03-21 13:30:43.569 28872-28872/com.example.dell.myapplication E/ContentValues: onResume:
 */

/**
 * 点击返回按钮
 * 03-21 13:32:37.910 28872-28872/com.example.dell.myapplication E/ContentValues: onPause:
 03-21 13:32:37.950 28872-28872/com.example.dell.myapplication E/ContentValues: onStop:
 03-21 13:32:37.953 28872-28872/com.example.dell.myapplication E/ContentValues: onDestroy:
 */

    /**
     * 点击home键
     *
     * 03-21 13:33:04.825 28872-28872/com.example.dell.myapplication E/ContentValues: onPause:
     03-21 13:33:05.140 28872-28872/com.example.dell.myapplication E/ContentValues: onStop:
     */
    public class MainActivity extends Activity {

        private Button button;
        private TextView textView;
        private String time;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            initView();
            listener();
        }

        private void listener() {
            button.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    hangeScreen();
                }
            });
            textView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    textView.setText("重新开始");
                }
            });
        }

        private void hangeScreen() {
            int ORIENTATION_PORTRAIT = 1;  //竖屏
            int ORIENTATION_LANDSCAPE = 2; //横屏
            int orientation = getResources().getConfiguration().orientation;
            if (orientation == ORIENTATION_PORTRAIT) {
                setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
            } else if (orientation == ORIENTATION_LANDSCAPE) {
                setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT);
            }
        }

    private void initView() {
        button = (Button) findViewById(R.id.button);
        textView = (TextView) findViewById(R.id.tvcontent);
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        time = format.format(new Date());
        textView.setText("onCreate" + time);
        Log.e(TAG, "onCreate:");
    }

    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
            textView.append("\n 当前屏幕为横屏");
        } else {
            textView.append("\n 当前屏幕为竖屏");
        }
        super.onConfigurationChanged(newConfig);
    }

    @Override
    protected void onStart() {
        super.onStart();
        textView.append("\n onStart");
        Log.e(TAG, "onStart:");
    }

    @Override
    protected void onRestart() {
        super.onRestart();
        textView.append("\n onRestart");
        Log.e(TAG, "onRestart:");
    }

    @Override
    protected void onResume() {
        super.onResume();
        textView.append("\n onResume");
        Log.e(TAG, "onResume:");
    }

    @Override
    protected void onPause() {
        super.onPause();
        textView.append("\n onPause");
        Log.e(TAG, "onPause:");
    }

    @Override
    protected void onStop() {
        super.onStop();
        textView.append("\n onStop");
        Log.e(TAG, "onStop:");
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        textView.append("\n onDestroy");
        Log.e(TAG, "onDestroy:");
    }


}
<activity android:name=".activity.MainActivity"
    >
    //横竖屏不调用生命周期的解决办法就是加一下两行代码
    <!--android:screenOrientation="portrait"-->
    <!--android:configChanges="orientation|keyboardHidden|screenSize"-->
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值