Activity是Android组件中最基本也是最常见的组件,一般情况下一个Activity就是对应一个单独的屏幕。
注:一下代码中父Activity用parent表示,子Activity用child表示(子Activity对应的Java文件为child.java)。
一.启动Activity
要启动一个新的Activity,有以下三个步骤(在父Activity中执行)
1.新建一个Intent(有两种方法)
方法①:
Intent intent = new Intent();
intent.setClass(parent.this, child.class);
方法②:
Intent intent = new Intent(parent.this, child.class)
2.启动Activity(有两种方法)
方法①:
startActivity(intent);
方法②:
startActivityForResult(intent, 0);
//当第2个参数大于等于时,将会在子Activity关闭时调用父Activity的onActivityResult()函数
以上两个方法的差异在于可以在方法②启动的Activity关闭时,回调数据给启动它的父Activity,进而实现Activity之间的通信。(稍后将会讲述)
3.在AndroidManifest.xml文件中注册Activity
在AndroidManifest.xml文件下的“<application></application>”标签之间填入一个新的<activity>标签,例:
<activity
android:name=".child" >
</activity>
其中,<activity>标签里可以加入“android:them”属性来设置该Activity的样式。
二.Activity之间的通信
Activity之间有两种通信方式
方式①:父Activity向子Activity传递信息
//在父Activity创建子Activity时执行
Intent intent = new Intent(parent.this, child.class);
Bundle bundle = new Bundle();
bundle.putString("msg", msg); //msg为要传递的信息(String类型)
intent.putExtras(bundle);
startActivity(intent);
//在子Activity中获取数据
String msg = this.getIntent().getExtras().getString("msg");
方式②:子Activity关闭后,要回调数据给父Activity
//在父Activity创建子Activity时执行
Intent intent = new Intent(parent.this, child.class);
Bundle bundle = new Bundle();
bundle.putString("msg", msg); //msg为要传递的信息(String类型)
intent.putExtras(bundle);
startActivityForResult(intent, 0);
//当第2个参数大于等于时,将会在子Activity关闭时调用父Activity的onActivityResult()函数
//在子Activity关闭时
Intent intent = getIntent();
Bundle bundle = new Bundle();
bundle.putString("msg",msg); //msg为要传递的信息(String类型)
intent.putExtras(bundle);
setResult(RESULT_OK,intent);
finish();
//在父Activity中加入onActivityResult函数,以接收回调的信息
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data_intent){
super.onActivityResult(requestCode, resultCode, data_intent);
if(resultCode == RESULT_CANCELED)
setTitle("cancel");
else if (resultCode == RESULT_OK){
Bundle bundle = data_intent.getExtras();
if(bundle != null){
//获取子Activity传送的数据
String msg = bundle.getString("msg");
}
}
}
分享到:
相关推荐
本文将详细讨论如何启动Service以及Activity与Service之间的通信机制。 首先,我们来看启动Service的两种主要方式: 1. **显式启动(Explicit Start)**: 显式启动Service时,我们需要明确指定Service的类名。...
Fragment与Activity之间的通信是Android开发中常见的需求,特别是在创建复杂、动态布局时。本实例将深入探讨这一主题,讲解如何在Fragment和Activity之间有效地传递数据和执行操作。 首先,让我们了解Fragment和...
Service的启动,Activity与Service之间数据传递,Binder利用bindService实现Service传递数据给Activity,Activity的成员Broadcast实现Service传递数据给Activity
1. startService(): 当Activity启动Service时,可以通过Intent传递数据。Service在onStartCommand()方法中接收这些数据,处理完任务后通过BroadcastReceiver或者返回结果到调用startService()的地方。 2. ...
在Android Hook Activity启动劫持中,我们首先需要找到AMS的Binder接口,因为系统服务与应用之间的通信是通过Binder机制实现的。然后,我们创建一个动态代理,这个代理类会实现AMS的Binder接口,并设置我们的...
理解Fragment及其与Activity之间的通信对于开发高效且灵活的Android应用至关重要。 首先,Fragment的生命周期与Activity紧密关联。Fragment有自己的onCreate(), onCreateView(), onStart(), onResume()等方法,这...
然而,在实际应用中,我们可能会遇到TabHost的子Activity与主Activity之间通信的问题,特别是在处理回调事件如OnActivityResult()时。本文将详细探讨这个问题,并提供解决方案。 首先,理解TabHost的工作原理是关键...
在实际项目中,常常需要多个Activity与一个Service进行通信,比如本例中提到的“service在后台下载”场景。这种通信机制对于实现应用的流畅性和功能完整性至关重要。 首先,我们来看如何创建和启动一个Service。...
本篇将详细探讨Fragment与Fragment以及双Fragment之间的通信机制。 首先,了解Fragment的基本概念:Fragment是Android SDK中的一个类,可以视为一个小型的Activity,但通常在更大的视图上下文中运行,如在一个...
在Android开发中,Activity间的通信是非常关键的一环,因为它允许应用程序的不同部分相互交互,实现功能的联动。本文将深入探讨两种常见的Activity间通信方式:Intent和SharedPreferences。 首先,Intent是Android...
如果Service需要与Activity通信,可以使用Binder机制,或者当涉及到跨进程通信时,可以借助AIDL(Android Interface Definition Language)定义接口。 九、生命周期管理 在进行Activity通信时,了解每个Activity的...
Activity启动流程是Android系统中一个非常核心的部分,它是应用程序组件之一,负责创建和管理应用的用户界面。当我们想要启动一个新的Activity时,背后有一系列复杂的交互过程,涉及多个组件和类。本文将通过代码...
本示例探讨的是如何实现`Service`与`Activity`之间的有效通信,确保`Service`能及时更新`Activity`的用户界面。以下是关于这个主题的详细讲解。 1. **Service**: `Service`是Android中的一个系统服务,它可以在后台...
总结来说,Android的Activity通信涉及Intent的使用、数据传递、结果回调、启动模式、生命周期管理以及导航与返回栈的处理。理解并熟练掌握这些知识点对于开发高效、稳定且用户体验良好的Android应用至关重要。通过...
综上所述,`startActivityForResult`是Android中进行Activity间通信的重要手段,它使得子Activity能够向父Activity传递数据和反馈,增强了应用的交互性和灵活性。在实际开发中,熟练掌握这一功能,对于构建功能丰富...
【Android Intent 启动和关闭Activity】 在Android应用程序开发中,Intent是连接各个组件(如Activity、Service等)的关键桥梁,主要用于启动和关闭Activity。Intent不仅能够启动一个新的Activity,还能在Activity...
Intent在Android中扮演着消息传递的角色,它允许一个Activity启动另一个Activity并传递数据。Intent有两个主要组成部分:Action和Data。Action定义了要执行的操作(如ACTION_VIEW或ACTION_EDIT),而Data则包含了...
Intent是Android中最常见的组件间通信方式,它能启动一个新的Activity或者Service。在不同应用之间使用Intent进行通信时,我们需要设置Intent的FLAG_ACTIVITY_NEW_TASK标志,并指定待启动应用的ComponentName。例如...
总结起来,Service启动Activity是通过Intent进行的,这涉及到Android组件间通信的核心机制。同时,ContentProvider作为Android四大组件之一,可以辅助进行数据共享和组件间通信。在实际开发中,理解这些概念并正确...