如何创建Activity

1.一个Activity就是一个类,要继承Activity

2.需要复写OnCreat方法

3.新建的Activity要在Androidmainfest.xml中进行配置

4.为Acticity中添加各种空间

5.使用Intent 启用新的Activity

Intent的最常用的用途是绑定应用程序组件。Intent用来在应用程序的Activity间启动、停止和传输。

这一章节中关于启动新的Activity的提示,也同样适用于Service。第8章可以了解到关于启动(和创建)Service的细节。

为了打开应用程序中不同的画面(Activity),调用startActivity,传入一个Intent,如下面的片段所示:

startActivity(myIntent);

Intent既可以显式的指定类去打开,也可以包含目标需要执行的动作。在后者的情况下,运行时会选择Activity去打开,使用一个熟知的处理过程——“Intent解析”

startActivity方法查找、启动与Intent最匹配的单一Activity。

当使用startActivity时,新启动的Activity结束是你的应用程序不会接收到任何通知。为了追踪打开画面的反馈,使用startActivityForResult方法,在后面会描述更多细节。

显式启动新的Activity

你在第2章已经了解到,应用程序由很多个内部相互联系的屏幕——Activity组成,这些Activity必须包含在应用程序的manifest中。为了连接它们,你可能想要显式的指定打开哪个Activity。

为了显式地选择一个Activity类来启动,需要创建一个新的Intent,指定当前应用程序的上下文和要启动的Activity的类。然后传递这个Intent给startActivity,如下的代码片段所示:

Intent intent = new Intent(MyActivity.this, MyOtherActivity.class);

startActivity(intent);

MyActivity.this.finish();

在调用startActivity之后,新的Activity(在这个例子里,是MyOtherActivity)将被创建,并变成可见和活跃状态,移到Activity栈的最顶端。

代码调用新Activity的finish方法会关闭它,并从栈中移除。可变通的地方,用户可以通过设备的Back按钮导航到先前的Activity。

隐式Intent和运行时绑定

隐式Intent是一种让匿名应用程序组件服务动作请求的机制。当创建一个新的隐式Intent时,你指定要执行的动作,作为可选项,你可以提供这个动作所需的数据。

当你使用这个新的隐式Intent来启动Activity时,Android会在运行时解析它,找到最适合在指定的数据类型上执行动作的类。这意味着,你可以创建使用其它应用程序的工程,而不需要提前精确地知道你会借用哪个应用程序的功能。

例如,如果你想让用户在应用程序里打电话,与其实现一个新的拨号,不如使用一个隐式的Intent来请求一个在一个电话号码(URI表示)上的动作(拨一个号码),如下代码片段所示:

if (somethingWeird && itDontLookGood)

{

Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse(“tel:555-2368”));

startActivity(intent);

}

Android解析这个Intent并启动一个提供了能在一个号码上执行拨号动作的Activity,在这里,是拨号Activity。

一些本地的应用程序提供了在特定数据上执行动作的组件。第三方应用程序,包括你的,也可以注册来支持新的动作或为本地动作提供一种替代的方法。你会在本章的后面了解到一些本地的动作。

时间: 2024-08-07 21:17:26

如何创建Activity的相关文章

创建Activity

创建 Activity 分为3个步骤: 1.创建一个扩展子Activity的class 2.创建一个Layout 3.在 AndroidMainfest 中 配置这个Activity 4.在class中用setContentView方法指向Layout 一.创建class 推荐类的名称以Aty_开头,这样有利于将Activity的类与其他类区别开,这里我们的类名为Aty_TestActivity 点击“browse”按钮设置扩展类,点击finish完成创建 二.创建Layout 在弹出的窗口中填

重新创建Activity

重新创建Activity 在有些情况下,您的Activity会因正常应用行为而销毁,比如当用户按 返回按钮或您的Activity通过调用 finish()示意自己的销毁. 如果Activity当前被停止或长期未使用,或者前台Activity需要更多资源以致系统必须关闭后台进程恢复内存,系统也可能会销毁Activity. 当您的Activity因用户按了返回 或Activity自行完成而被销毁时,系统的 Activity 实例概念将永久消失,因为行为指示不再需要Activity. 但是,如果系统因

3.4 重新创建 Activity

在有些情况下,您的 Activity 会因正常应用行为而销毁,比如当用户按 返回按钮或您的 Activity 通过调用 finish()示意自己的销毁. 如果 Activity 当前被停止或长期未使用,或者前台 Activity 需要更多资源以致系统必须关闭后台进程恢复内存,系统也可能会销毁 Activity. 当您的 Activity 因用户按了返回 或 Activity 自行完成而被销毁时,系统的 Activity 实例概念将永久消失,因为行为指示不再需要 Activity. 但是,如果系统

【Android进阶】为什么要创建Activity基类以及Activity基类中一般有哪些方法

现在也算是刚刚基本完成了自己的第一个商业项目,在开发的过程中,参考了不少人的代码风格,然而随着工作经验的积累,终于开始慢慢的了解到抽象思想在面向对象编程中的重要性,这一篇简单的介绍一下我的一点收获. 首先,在现在的项目中使用的主要是afinal框架,而且这个框架确实比较不错,省去了不少工作量,在编写Activity的过程中,基本都是直接继承自FinalActivity类,这样可以使用这个类给我们封装好的不少的方法,但是随着项目慢慢推进,这种直接继承框架类的一些缺点也开始慢慢的显现出来.最主要的就

关于Android创建Activity需要注意的地方

1.在onCreate()中加载UI,在onStart()/onResume()中刷新UI 2.在onCreate()中用Handler延时请求数据,数据处理最好是二次callback回调(第一次来自DB,第二次来自网络) 3.在Activity中尽量少创建Handler,创建一个UIHandler,一个后台HandlerThread足以 4.所有异步任务写进一个Runnable中,用自己写的应用后台线程池统一处理,而不是在Activity中直接new Thread() 5.异步Runnable

Android studio 不能创建Activity等文件

这是我之前安装Android studio的一系列问题:http://tieba.baidu.com/p/5921373177 1. 不能创建Activity等许多文件: 2. 工程运行不了: 3. 其他很多奇怪的问题就不一一列举了. 解决方案:在安装的时候,选择模式的时候选择Standard模式,这样虽然久点,但各种配置都会给你配置好的. 原文地址:https://www.cnblogs.com/zhangyuanqiang/p/9826549.html

【Android先进】我们为什么要创建Activity基类Activity什么是一般的基类方法

今天,它可以被视为只是基本完成了其首个商业项目,在发展过程中,风格,然而随着工作经验的积累.最终開始慢慢的了解到抽象思想在面向对象编程中的重要性,这一篇简单的介绍一下我的一点收获. 首先,在如今的项目中使用的主要是afinal框架,并且这个框架确实比較不错,省去了不少工作量.在编写Activity的过程中,基本都是直接继承自FinalActivity类,这样能够使用这个类给我们封装好的不少的方法,可是随着项目慢慢推进,这样的直接继承框架类的一些缺点也開始慢慢的显现出来.最基本的就是扩展性受到了一

1.4.4 重新创建Activity

有几个场景中,Activity是由于正常的程序行为而被Destory的.例如当用户点击返回按钮或者是Activity通过调用finish()来发出停止信号.系统也有可能会在Activity处于stop状态且长时间不被使用,或者是在前台activity需要更多系统资源的时关闭后台进程,以图获取更多的内存. 当Activity是因为用户点击Back按钮或者是activity通过调用finish()结束自己时,系统就丢失了对Activity实例的引用,因为这一行为意味着不再需要这个activity了.

代理模式创建Activity

代码实现采用构造方法传递参数传递Activity实例的方式 public class ActivityHandler { protected Activity mActivityInstance; public ActivityHandler(Activity activity) { mActivityInstance = activity; } // this one is called before super.onCreate public void onPreCreate(Bundle