Android->Activity 学习

1.生命周期
onCreate()->onStart()->onResume()->onPause()->onStop()->onDestory()

onStop()->onRestart()->onStart()// 一般不使用

2.多个Activity交互
A.onCreate()->A.onStart()->A.onResume()->A.onPause()->B.onCreate()->B.onStart()->B.onResume()->A.onStop()

点击Back键时:
开启新的Activity时先调用自己的onPause()方法,然后调用新Activity的onCreate()->onStart()->onResume(),最后调用自己的onStop()方法。

3.横竖屏切换
常规:onPause()->onStop()->onDestory()->onCreate()->onStart()->onResume()
使用onSaveInstanceStart(Bundle outState)来保存界面的一些信息:
在onCreate()方法中的saveInstanceState来获取信息.

4.启动方式
1)直接启动
I. Intent intent = new Intent(MainActivity.this,SecondActivity.class);
startActivity(intent);

    II. Intent intent = new Intent();
        Component component = new Component(MainActivity.this,SecondActivity.class);
        intent.setCompontent(component);
        startActivity(intent);
2)匿名启动
    在AndroidManifest.xml文件中配置:
    <activity>
        <intent-filter>
            <action android:name="mooc"/>
            <category android:name="android.intent.category.DEFAULT/>
        </intent-filter>
    </activity>
    在需要开启Activity的位置写以下代码
    Intent intent = new Intent();
    intent.setAction("mooc");
    startActivity(intent);

5.打开系统常见的Activity
I. 系统浏览器:
ACTION–ACTION_VIEW
Uri uri = Uri.parse(“http://www.baidu.com/“);
intent.setData(uri);
II. 系统图库:
ACTION–ACTION_GET_CONTENT
intent.setType(“image/”);
III.发送短信:
ACTION–ACTION_SEND
intent.setType(“text/plain”);
intent.putExtra(Intent.EXTRA_TEXT,”I am a boy!”);
IV. 启动电话界面
ACTION–ACTION_CALL
Uri uri = Uri.parse(“tel:123456”);
intent.setData(url);

6.数据交互
I.
A界面:
Intent intent = new Intent(MainActivity.this,SecondActivity.class);
intent.putExtra(“key”,”value”);
startActivity(intent);

    B界面:
    Intent intent = getIntent();
    if(intent!=null){
        String value = intent.getStringExtra("key");
    }

II.
    A界面:
    Intent intent = new Intent(MainActivity.this,SecondActivity.class);
    Bundle bundle = new Bundle();
    bundle.putString("key","value");
    intent.putExtras(bundle);
    startActivity(intent);

    B界面:
    Intent intent = getIntent();
    if(intent!=null){
        String value = intent.getStringExtra("key");
    }

III.传递对象
    A界面:
    Intent intent = new Intent(MainActivity.this,SecondActivity.class);
    // Person类需要实现Serializable
    Person person = new Person();
    Bundle bundle = new Bundle();
    bundle.putSerializable("person",person);
    intent.putExtras(bundle);
    startActivity(intent);

    B界面:
    Intent intent = getIntent();
    if(intent!=null){
        Person pseron = intent.getSerializableExtra("person");
    }

III.传递一张图片
    A界面:
    Intent intent = new Intent(MainActivity.this,SecondActivity.class);
    Bitmap bitmap = BitmapFactory.decodeResource(getResources(),R.drawable.ic_launcher);
    Bundle bundle = new Bundle();
    bundle.putParcelable("bitmap",bitmap);
    intent.putExtras(bundle);
    startActivity(intent);

    B界面:
    Intent intent = getIntent();
    if(intent!=null){
        Bitmap bitmap = intent.getParcelableExtra("bitmap");
    }
其中Bundle对象传递数据应该小于0.5M的数据,传递大数据时将无法开启新的Activity。

7.启动模式
I. Back Stack(后台任务栈)–特点:后进先出
获得任务ID: getTaskId();
II. android:launcher->
standard/singleTop/singleTask/singleInstance

——-深入了解Activity
1.与Activity相关的Framework层类介绍
1) ActivityThread
I. 本身不是一个线程
II. 在主线程的方法当中运行
Looper.prepareMainLooper();
ActivityThread thread= new ActivityThread();
thread.attach(false);
Looper.loop();
III. ActivityThread启动完成后通知AMS。
IAcitivityManager mgr = ActivityManagerNative.getDefault();
mgr.attachApplication(mAppThread);
2) ApplicationThread
3) ActivityClientRecord
4) ActivityRecord
5) Context–ContextImpl–ContextWrapper

2.生命周期具体回调
1) Instrumentation: Application的创建生命周期的管理,启动Activity.
2) ActivityManagerNative: 远程代理
3) onCreate(),onResume()

3.onDestroy()并未真的销毁Activity。

Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值