Android入门学习六:活动、碎片、意图

本文详细介绍了Android中Activity的四种状态及其生命周期,并提供了Activity的运作流程。此外,还讲解了如何使用意图链接Activity以及Fragment的基本概念和生命周期。
[b][size=x-large]理解活动[/size][/b]
活动就是一个包含应用程序的用户界面的窗口

[size=large][b]Activity四种状态[/b][/size]

[b]Active/Runing [/b]
一个新 Activity 启动入栈后,它在屏幕最前端,处于栈的最顶端,此时它处于可见并可和用户交互的激活状态。 [img][/img]
[b]Paused [/b]
当 Activity 被另一个透明或者 Dialog 样式的 Activity 覆盖时的状态。此时它依然与窗口管理器保持连接,系统继续维护其内部状态,所以它仍然可见,但它已经失去了焦点故不可与用户交互。
[b]Stoped [/b]
当 Activity 被另外一个 Activity 覆盖、失去焦点并不可见时处于 Stoped 状态。
[b]Killed Activity[/b]
被系统杀死回收或者没有被启动时处于 Killed 状态。

[size=large][b]Activity生命周期流程图[/b][/size]
[img]http://dl2.iteye.com/upload/attachment/0105/9181/26e6bc47-c473-39e0-9cd4-3a1621c4a116.jpg[/img]

[size=large][b]Activity生命周期这种方法[/b][/size]

[table]
|方法|描述|下一个操作|
|onCreate()|活动初始化创建时候调用|onStart()|
|onStart()|活动对用户可见时调用|onResume()或onStop()|
|onRestart()|活动重新启动(从后台返回前台)时候调用|onStart()|
|onResume()|活动跟用户交互之前调用|onPause()|
|onPause()|在系统要激活另一个活动时调用|onResume() 或者 onStop()|
|onStop()|活动在不可见的情况下调用|onRestart() 或者 onDestroy()|
|onDestory()|活动被销毁时候调用||
[/table]

[size=large][b]Activity的运作流程[/b][/size]
当用户按下back按钮时,一个活动就被销毁。onPause()事件在两个情况下都将被调用——当活动被送人后台以及用户按下back键盘而终止活动时。

[list]
[*][b]一般启动Activity:onCreate -> onStart -> onResume[/b]

[*][b]呼叫另一个Activity: onPause -> onCreate -> onStart -> onResume -> onStop[/b]

[*][b]还原Activity: onPause -> onRestart -> onStart -> onResume -> onStop -> onDestroy[/b]

[*][b]退出Activity: onPause -> onStop -> onDestroy[/b]

[*][b]回收再启动Activity: onCreate -> onStart -> onResume[/b]
[/list]

[b][size=x-large]使用意图链接活动[/size][/b]
Android中的活动之间的导航是通过意图来完成的

在AndroidMainfest.xml文件中,专门添加了以下内容

<activity
android:label ="Second Activity"
android:name =".SencondActivity">
<intent-filter>
<action android:name ="com.dawei.test. SencondActivity">
<category android:name ="android.intent.category.DEFAULT">
</intent-filter>
</activity>

添加的新活动的名称是SecondActivity
新活动的标签为Second Activity
新活动意图名称为com.dawei.test. SencondActivity
意图筛选器的类别是android.intent.category.DEFAULT


在代码中可以通过下面方式调用

startActivity(new Intent("com.dawei.test. SencondActivity"));
//也可以这样写
startActivity(new Intent(this, SencondActivity.class));


如果需要从一个活动中回传数据,应该使用startActivityForResult()

//意图调用
startActivityForResult(new Intent(com.dawei.test, SencondActivity),recode_code)

//回调方法
public void onActivityResult(int requestCode,int resultCode,Intent data){
...
}


使用意图对象传递数据

Intent i = new Intent("net.learn2develop.SecondActivity");
//---use putExtra() to add new key/value pairs---
i.putExtra("str1", "This is a string");
i.putExtra("age1", 25);
//---use a Bundle object to add new key/values
// pairs---
Bundle extras = new Bundle();
extras.putString("str2", "This is another string");
extras.putInt("age2", 35);

//---attach the Bundle object to the Intent object---
i.putExtras(extras);
//---start the activity to get a result back---
startActivityForResult(i, 1);



[b][size=x-large]碎片[/size][/b]
可以把碎片看做另一种形式的活动,碎片总是内嵌在活动中的
[size=large][b]碎片的生命周期[/b][/size]
[list]
[*]碎片被创建时:onAttach()-->onCreate()-->onCreateView()-->onActivityCreated();

[*]碎片变为可见时:onStart()-->onResume();

[*]碎片进入后台模式时:onPause()-->onStop();

[*]碎片被销毁时:onPause()-->onStop()-->onDestroyView()-->onDestroy()-->onDetach();
[/list]

就像activitie一样,在以下的状态中,可以使用Bundle对象保存一个fragment的对象。
onCreate()
onCreateView()
onActivityCreated()

fragments的大部分状态都和activitie很相似,但fragment有一些新的状态。
onAttached() —— 当fragment和activity关联之后,调用这个方法。
onCreateView() —— 创建fragment中的视图的时候,调用这个方法。
onActivityCreated() —— 当activity的onCreate()方法被返回之后,调用这个方法。
onDestroyView() —— 当fragment中的视图被移除的时候,调用这个方法。
onDetach() —— 当fragment和activity分离的时候,调用这个方法。

[b][size=x-large]使用意图调用内置应用程序[/size][/b]
可以通过意图来调用内置的程序,如电话,信息,邮件等应用
考虑可再生能源出力不确定性的商业园区用户需求响应策略(Matlab代码实现)内容概要:本文围绕“考虑可再生能源出力不确定性的商业园区用户需求响应策略”展开,结合Matlab代码实现,研究在可再生能源(如风电、光伏)出力具有不确定性的背景下,商业园区如何制定有效的需求响应策略以优化能源调度提升系统经济性。文中可能涉及不确定性建模(如场景生成与缩减)、优化模型构建(如随机规划、鲁棒优化)以及需求响应机制设计(如价格型、激励型),并通过Matlab仿真验证所提策略的有效性。此外,文档还列举了大量相关的电力系统、综合能源系统优化调度案例与代码资源,涵盖微电网调度、储能配置、负荷预测等多个方向,形成一个完整的科研支持体系。; 适合人群:具备一定电力系统、优化理论Matlab编程基础的研究生、科研人员及从事能源系统规划与运行的工程技术人员。; 使用场景及目标:①学习如何建模可再生能源的不确定性并应用于需求响应优化;②掌握使用Matlab进行商业园区能源系统仿真与优化调度的方法;③复现论文结果或开展相关课题研究,提升科研效率与创新能力。; 阅读建议:建议结合文中提供的Matlab代码实例,逐步理解模型构建与求解过程,重点关注不确定性处理方法与需求响应机制的设计逻辑,同时可参考文档中列出的其他资源进行扩展学习与交叉验证。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值