zoukankan      html  css  js  c++  java
  • android 17 activity生命周期

    手机指南针传感器处于手机头部。
    Activity生命周期:
    启动。
    onCreat()方法:初始化布局对象,设置监听器。
    onstart()方法:注册监听器。
    onResume():activity已经是屏幕最前端了,
    running,已经是最前端了,可以触摸了,可以响应。
    onPause():其他activity把之前的ancity完全遮住了,则调用onPause()方法暂停本acticity,然后调用onStop方法停止这个activity。如果只是部分遮住,则调用onPause()方法暂停本acticity,不调用onStop方法。停止住的acticity的数据和成员变量都是保存的,当挡住的acticity不遮住的时候会重新加载,里面的数据可以重新使用。处于暂停和停止的acticity的数据和成员变量都是保存的可以重新使用。处于暂停和停止的acticity有2种走向,当系统内存不足是会把停止的acticity杀掉,出了暂停的acticity优先级高于停止的acticity,当内存极度缺乏的时候也会杀掉处于暂停的acticity。但系统内存足够的时候,当挡住的activity不再挡住时,处于暂停的acticity调用onResume()方法启动,处于停止的activity调用onRestart()方法启动。
    关掉activity时会依次调用onPause()onStop()ondestiry()方法,ondestiry()可以保存数据释放流资源和监听器和网络资源。流资源和数据库占用的是系统内存之外的资源,gc只能回收内存的对象,因此要释放外部资源。
    如果系统资源匮乏,处于停止的activity被系统杀掉了则不会执行onDestory(),所以在onStop()方法里面就要释放资源。

    第一个activity:

    package com.sxt.day04_03;
    
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.view.View.OnClickListener;
    
    public class MainActivity extends Activity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            Log.i("main","onCreate()");
            setListener();
        }
    
        private void setListener() {
            findViewById(R.id.button).setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent intent=new Intent(MainActivity.this, SecondActivity.class);
                    startActivity(intent);
                }
            });
        }
    
        @Override
        protected void onStart() {
            super.onStart();
            Log.i("main","onStart()");
        }
        
        @Override
        protected void onResume() {
            super.onResume();
            Log.i("main","onResume()");
        }
        
        @Override
        protected void onPause() {
            super.onPause();
            Log.i("main", "onPause()");
        }
        
        @Override
        protected void onStop() {
            super.onStop();
            Log.i("main","onStop()");
        }
        
        @Override
        protected void onDestroy() {
            super.onDestroy();
            Log.i("main","onDestroy()");
        }
        
        @Override
        protected void onRestart() {
            super.onRestart();
            Log.i("main","onRestatr()");
        }
    }

    第二个activity:

    package com.sxt.day04_03;
    
    import android.app.Activity;
    import android.os.Bundle;
    
    public class SecondActivity extends Activity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_second);
        }
    
    }
  • 相关阅读:
    c# 坑人的发邮件组件
    生成拼音
    FileDb
    WMI tester
    c# 纯代码调用 webservice
    c# 中 利用 CookieContainer 对 Cookie 进行序列化和反序列化校验
    在经过身份验证的服务中不支持跨域 javascript 回调
    c# 使用 namedpipe 通信
    c++ 创建线程以及参数传递
    c#函数地址传入c++
  • 原文地址:https://www.cnblogs.com/yaowen/p/4886430.html
Copyright © 2011-2022 走看看