03-04-Android开发技术讲义 之启动另一个Activity

合集下载

Android开发入门之四大组件Activity启动

Android开发入门之四大组件Activity启动

Android开发中,Activity是四大组件之一,也是Android开发入门初学者必须重点掌握的内容之一,而要掌握Activity的启动模式,首先要学习的就是任务栈。

任务栈Task ,是一种用来放置Activity实例的容器,他是以栈的形式进行盛放,也就是所谓的先进后出,主要有2个基本操作:压栈和弹出,所以在其中只能根据压栈和弹出操作更改Activity的顺序。

启动一个Application的时候,系统会为它默认创建一个对于的Task,用来放置根Activity。

Android软件开发学习Activity组件启动模式方法Activity启动模式在安卓中,Activity的启动模式分为四种,分别是:标准模式,栈顶复用模式,栈内复用模式,单例模式。

1、standard 即标准模式,他是系统默认的启动方式,这个任务栈中可以有多个相同的Activity实例,多个相同Activity实例也可以分布在不同的任务栈中,这时候是谁启动他,他就和谁在一个任务栈中。

这时候我们要联系到我们遇到过的一个常:android.util.AndroidRuntimeException:....,具体内容大家试试这样启动一个Activity就会出来,使用ApplicationContext启动一个standard模式的Activity。

我们分析下,其实这个错误的出现就是因为默认模式下,被谁启动,activity就翻到那个任务栈中去,而全局的上下文对象是没有任务栈存在的,所以就会报错了。

解决这个问题可以更改启动的上下文为某个activity 对象,当然我们如果将被启动的activity设置他的标志位为FLAG_ACTIVITY_NEW_TASK 也同样可以,这时候就相当于把Activity改为了singleTask模式启动了。

2、singleTop 即栈顶唯一模式,这种模式下,如果Activity位于任务栈的栈顶,那么此Activity 不会被重新创建,也就是说不会调用生命周期中的onCreate和onStart 方法,但是会回调另一个方法onNewIntent ,这时候我们可以在这个回调方法里根据参数Intent intent进行自己的相关处理。

android中activity的作用

android中activity的作用

android中activity的作用
Android中的Activity是一种Android应用程序组件,它是应
用程序用户界面的基本单元之一,用于展示用户界面,并处理与用户交互的事件。

Activity可以执行各种任务,包括呈现一
个布局、启动另一个Activity、接收用户输入、显示对话框、
与数据库等数据存储进行交互等。

以下是Activity的主要作用:
1. 展示用户界面:Activity是用来呈现用户界面的,它可以包
括布局、按钮、文本框、图像和其他UI组件。

2. 处理用户输入:Activity可以监听用户的交互操作,比如点
击一个按钮或文本框输入等。

3. 启动其他Activity:应用程序通常涉及多个Activity,一个Activity可以启动其他Activity,以便用户可以浏览应用程序
的不同部分。

4. 保存和恢复状态:当设备配置更改或系统内存不足时,Activity可以保存其状态并在需要时进行恢复。

5. 数据交互: Activity可以与其他应用程序进行数据交互,例
如通过Intent与其他Activity进行通信,与数据库进行交互等。

Android一个app启动另一个app

Android一个app启动另一个app

Android⼀个app启动另⼀个app最近,⼀个app启动另⼀个app,这个玩法挺⽕的嘛,有没有试过更新QQ到5.1版本,QQ的健康⾥⾯就可以添加其他app,实现从QQ跳转到其他app应⽤。

这个挺好玩的,⼀下⼦带来了多少流量啊。

⼀、先来⼏⾏代码,⼀个app启动另⼀个app// 通过包名获取要跳转的app,创建intent对象Intent intent = getPackageManager().getLaunchIntentForPackage("com.example.liuxiang");// 这⾥如果intent为空,就说名没有安装要跳转的应⽤嘛if (intent != null) {// 这⾥跟Activity传递参数⼀样的嘛,不要担⼼怎么传递参数,还有接收参数也是跟Activity和Activity传参数⼀样intent.putExtra("name", "Liu xiang");intent.putExtra("birthday", "1983-7-13");startActivity(intent);} else {// 没有安装要跳转的app应⽤,提醒⼀下Toast.makeText(getApplicationContext(), "哟,赶紧下载安装这个APP吧", Toast.LENGTH_LONG).show();}这⾥或许⽹上有很多类似代码,还是提⼀下,让⼤家知道流程。

⼆、被启动的app如何获取参数呢?public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_main);Intent intent = getIntent();Bundle bundle = intent.getExtras();if (bundle != null) {String name = bundle.getString("name");String birthday = bundle.getString("birthday");if (name != null && birthday != null) {Toast.makeText(getApplicationContext(), "name:" + name + " birthday:" + birthday, Toast.LENGTH_SHORT).show();}}}}在被打开的app应⽤,也是简单地⼏⾏代码可以接收到传过来的参数信息。

activity流程操作

activity流程操作

activity流程操作Activity是Android应用程序中的一个重要组件,它负责管理用户界面和用户交互。

在Android开发中,我们经常需要对Activity进行流程操作,以实现不同的功能和交互效果。

本文将介绍一些常见的Activity流程操作,帮助开发者更好地理解和使用Activity组件。

1. 启动Activity启动Activity是Android应用程序中最基本的操作之一。

我们可以通过Intent对象来启动一个新的Activity,并传递数据给新的Activity。

例如,我们可以通过以下代码启动一个新的Activity:```javaIntent intent = new Intent(this, SecondActivity.class);intent.putExtra("key", "value");startActivity(intent);```在新的Activity中,我们可以通过getIntent()方法获取传递过来的数据,并进行相应的处理。

2. 生命周期管理Activity有多个生命周期方法,如onCreate()、onStart()、onResume()、onPause()、onStop()和onDestroy()等。

我们可以通过这些生命周期方法来管理Activity的状态和行为。

例如,我们可以在onCreate()方法中进行初始化操作,在onResume()方法中进行界面更新操作,在onPause()方法中保存数据等。

3. 返回数据在Activity之间进行数据交换是常见的操作。

我们可以通过startActivityForResult()方法启动一个新的Activity,并在新的Activity中通过setResult()方法返回数据给上一个Activity。

例如,我们可以通过以下代码启动一个新的Activity并获取返回数据:```javaIntent intent = new Intent(this, SecondActivity.class);startActivityForResult(intent, REQUEST_CODE);```在新的Activity中,我们可以通过以下代码返回数据给上一个Activity:```javaIntent intent = new Intent();intent.putExtra("result", "data");setResult(RESULT_OK, intent);finish();```在上一个Activity中,我们可以通过onActivityResult()方法获取返回的数据,并进行相应的处理。

android开发教程1.1.4启动其他的Activity

android开发教程1.1.4启动其他的Activity

启动其他的Activity在完成上一课(建立简单的用户界面)后,你已经拥有了显示一个activity(唯一屏幕)的app(应用),并且这个activity包含了一个文本字段和一个按钮。

在这节课中,你将会添加一些新的代码到MainActivity中,当用户点击发送(Send)按钮时启动一个新的activity。

响应Send(发送)按钮响应按钮的on-click(点击)事件,打开fragment_main.xml布局文件然后在Button(按钮)元素中添加android:onclick属性:<Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/button_send"android:onClick="sendMessage" //sendMessage is the method name/>android:onclick属性的值"sendMessage"就是当用户点击你屏幕按钮时触发方法的名字。

添加相应的方法在MainActivity类中:/** 当用户点击按钮时会被调用 */public void sendMessage(View view){// 响应按钮的事件处理逻辑}请注意,为了让系统能够将这个方法(你刚在MyFirstActivity中添加的sendMessage方法)与在android:onClick属性中提供的方法名字匹配,它们的名字必须一致,特别是,这个方法必须满足以下条件:∙公共的∙没有返回值∙有唯一的视图(View)参数(这个视图就是将被点击的视图)接下来,你可以在这个方法中编写读取文本内容的代码,并将该内容传到另一个Activity。

android 系统的activity 使用规则

android 系统的activity 使用规则

android 系统的activity 使用规则
在Android系统中,Activity的使用有一些关键规则和最佳实践。

以下是一些重要的规则和注意事项:
1. 重写onCreate方法:每个Activity都应重写Activity的onCreate方法。

2. 使用Toast:在活动中使用Toast来显示短时间的信息。

例如,(, "You clicked Button1", _SHORT).show();。

3. 使用Intent启动活动:可以使用显式Intent启动另一个Activity。

例如,Intent intent = new Intent(, ); startActivity(intent);。

4. 在中注册:活动必须在中注册才能生效。

5. 使用Menu:如果需要在活动中使用菜单,可以重写onCreateOptionMenu和onOptionsItemSelected方法。

Menu布局必
须放在menu文件夹下面。

6. 保存Activity的临时数据:Activity中提供了一个onSaveInstanceState(Bundle outState)回调方法,这个方法保证一定在Activity被回收时调用,因此可以通过这个方法来临时保存所需数据。

遵循这些规则和最佳实践可以确保你的Activity表现正常,提供良好的用户体验,并符合Android系统的设计原则。

activity的启动流程

activity的启动流程

activity的启动流程Android Activity启动流程1. 启动Activity过程:(1)Android系统接收到启动Activity的命令后,首先会根据当前任务栈检查当前任务中是否有此Activity;(2)如果当前任务中存在此Activity,则Activity将回到栈顶;如果不存在,则新建Activity;(3)即生成一个新的Activity实例,然后通过calling attach(IBinder token)调用连接到ActivityThread处理并添加到任务栈;2. Activity对象创建过程:(1)ActivityThread会调用handleLaunchActivity(ActivityClientRecord r)方法,创建Activity对象;(2)先根据<activity>在AndroidManifest.xml中的定义,加载此Activity对应的class(Activity引用AppClassLoader加载);(3)然后在LoadedApk类中调用makeActivity()方法创建此Activity对象;3. Activity实例化过程:(1)ActivityThread会先调用handleResumeActivity方法创建一个新的Activity实例;(2)然后调用performCreate()方法,进而调用onCreate()方法,从而Activity实例化。

4. Activity与Window的关联:(1)ActivityThread在handleResumeActivity()之后会调用performResume()方法,与Window进行关联;(2)performResume()方法会调用Window.setWindowManager()方法,然后通过Window.addContentView(),将当前Activity的ContentView添加到窗口中;5. Activity可见:(1)接着,ActivityThread会调用Activity的onStart()方法,此时Activity变成可见的;(2)接着调用onResume()方法,此Activity可见且处于运行状态。

activity 启动的方法

activity 启动的方法

activity 启动的方法Activity启动的方法在Android开发中,Activity是应用程序的核心组件之一,它负责提供用户界面和处理用户交互。

为了启动一个Activity,我们可以使用以下几种方法:1. 使用显式Intent启动Activity:通过显式Intent指定要启动的Activity的类名,然后调用startActivity()方法即可启动该Activity。

例如:```Intent intent = new Intent(CurrentActivity.this, TargetActivity.class);startActivity(intent);```2. 使用隐式Intent启动Activity:使用隐式Intent启动Activity时,我们只需指定一些动作(Action)或者数据(Data),然后系统会自动找到合适的Activity来响应该Intent。

例如: ```Intent intent = new Intent("com.example.ACTION_SOME_ACTION");startActivity(intent);```3. 带返回结果的启动:有时候,我们需要从被启动的Activity中获取结果。

这时,我们可以使用startActivityForResult()方法启动Activity,并在目标Activity中通过setResult()方法返回结果。

例如:```Intent intent = new Intent(CurrentActivity.this, TargetActivity.class);startActivityForResult(intent, REQUEST_CODE);```在目标Activity中,我们可以通过Intent将结果返回给调用方:```Intent resultIntent = new Intent();resultIntent.putExtra("result", "success");setResult(RESULT_OK, resultIntent);finish();```4. 使用Task和Back Stack来管理Activity的启动:在Android系统中,Activity是通过任务(Task)和后退栈(Back Stack)来管理的。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Android开发技术讲义之启动另一个
Activity
紧接着上一个练习,我们为上一个练习app添加一些代码,使之当我们点击send 按钮的时候能够启动另一个Activity。

任务
在文本框中输入消息,点击Send按钮,消息会显示在第二个Activity中。

对发送按钮进行响应
1.在res/layout目录中,编辑activity_my.xml
2.在<Button>元素中添加android:onClick属性
res/layout/activity_my.xml
该属性的属性值"sendMessage",是当点击按钮的时候系统调用的方法名
3.在java/com.mycompanu.myfirstapp目录中,打开MyActivity.java文件
4.在MyActivity类中,添加sendMessage()方法
java/com.mycompany.myfirstapp/MyActivity.java
为了匹配android:onClick属性值,该方法必须满足:
●是public
●返回值为void
●有且仅有一个View作为参数
创建一个Intent
1.在MyActivity.java中的sendMessage()方法中,创建一个Intent启动一个名
为DisplayMessageActivity的Activity
java/com.mycompany.myfirstapp/MyActivity.java
注意:此时对DisplayMessageActivity的调用会显示出错,我们这时可以先忽略错误
这里,Intent构造方法用到了两个参数:
●Context作为第一个参数(这里是this,因为Activity是Context的子类)
●第二个参数为系统发送Intent的目标,为某应用组件的Class
2.在本文件的前面,引入Intent类:
java/com.mycompany.myfirstapp/MyActivity.java
按快捷键Alt + Enter(mac中为option + return)来引入类
3.在sendMessage()方法中,使用findViewById()来获取EditText元素
java/com.mycompany.myfirstapp/MyActivity.java
4.在文件的前面,引入EditText类
5.将文本内容赋值给message变量,使用putExtra()方法将message加入
intent
java/com.mycompany.myfirstapp/MyActivity.java
Intent可以携带称为extra的键值对数据,putExtra()方法的第一个参数为键,第二个参数为值。

6.在MyActivity类的前面添加一个EXTRA_MESSAGE的定义
java/com.mycompany.myfirstapp/MyActivity.java
7.为了使下一个Activity能够检索到extra数据,要定义一个public常量作为
intent的extra数据的键。

通常我们用应用的包名作为前缀,以保证键的唯一性。

java/com.mycompany.myfirstapp/MyActivity.java
在sendMessage()方法中,将Intent对象作为参数,调用startActivity()方法
系统接收到调用之后,启动Intent中指定的Activity。

创建第二个Activity
所有Activity的子类都必须实现onCreate()方法,在这个方法里接收intent传递过来的消息。

在该方法中必须通过setContentView()方法定义Activity的布局,在这里初始化Activity组件的设置。

在Android Studio中创建Activity的时候,该Activity类中会含有onCreate()方法。

1.在java目录中,选择包com.mycompany.myfirstapp,右击,选择New >
Activity > Blank Activity
2.在Choose options窗口中,填入下面信息:
●Activity Name:DisplayMessageActivity
●Layout Name:activity_display_message
●Title:My Message
●Hierarchical Parent:com.mycompany.myfirstapp.MyActivity
●Package name:com.mycompany.myfirstapp
点击Finish
3.打开DisplayMessageActivity.java文件,该文件中包含onCreate()方法。

4.删除onCreateOptionsMenu()方法,该应用不需要这个方法。

接收Intent
每个Activity都是由Intent调用的,在Activity中通过调用getIntent()来获取启动该Activity的Intent,从而可以获取包含在该intent中的数据。

1.在java/com.mycompany.myfirstapp目录中,编辑
DisplayMessageActivity.java文件
2.在onCreate()方法中,删除下面这行代码:
3.获取Intent并放在一个局部变量里
4.在文件的前面,引入Intent类
5.提取MyActivity通过getStringExtra()方法传递过来的消息
显示消息
1.在onCreate()方法中,创建一个TextView对象
2.通过setText()设置文本大小和消息
3.然后将TextView作为布局的根视图传递给setContentView()
4.在文件的前面引入TextView类。

相关文档
最新文档