您的位置:

Android startActivity方法详解

一、startActivity方法的基本用法

Android中的Activity是一种基本的应用组件,可以用来展示用户界面和处理用户的交互。在Android中启动一个新的Activity时,需要使用startActivity方法。startActivity方法可以接收一个Intent对象作为参数,并根据Intent中包含的信息来启动一个新的Activity。下面是示例代码:

Intent intent = new Intent(this, SecondActivity.class);
startActivity(intent);

其中,第一个参数this表示当前Activity的上下文对象,即当前Activity的实例引用。第二个参数是要启动的Activity的Class对象,即要启动的Activity的类。这里我们要启动的是名为SecondActivity的Activity。

在AndroidManifest.xml文件中需要注册SecondActivity:

<activity android:name=".SecondActivity">

这样就可以调用startActivity方法来启动SecondActivity了。

二、startActivityForResult方法的使用

startActivityForResult方法可以启动一个新的Activity,并且可以接收该Activity返回的结果。在启动新的Activity时,可以传递一些参数供新的Activity使用。下面是示例代码:

Intent intent = new Intent(this, SecondActivity.class);
intent.putExtra("name", "张三");
intent.putExtra("age", 20);
startActivityForResult(intent, 1);

在这个示例中,除了启动SecondActivity之外,还传递了两个参数,一个是name,一个是age。然后调用了startActivityForResult方法,第一个参数是要启动的Activity的Intent对象,第二个参数是requestCode,用于标识该请求的唯一性。

在启动的Activity中,如果要返回结果,可以使用如下代码:

Intent intent = new Intent();
intent.putExtra("result", "success");
setResult(RESULT_OK, intent);
finish();

在这个示例中,我们新建了一个Intent对象,并且向其中添加了一个result参数。然后调用了setResult方法,第一个参数是返回码,表示该返回结果是正常返回的结果。第二个参数是Intent对象,用于存储要返回的数据。最后调用了finish方法来关闭该Activity。

在启动的Activity返回之后,会调用onActivityResult方法,可以在该方法中接收返回的结果,处理并显示出来。下面是示例代码:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == 1 && resultCode == RESULT_OK) {
        String result = data.getStringExtra("result");
        Toast.makeText(this, "返回结果:" + result, Toast.LENGTH_SHORT).show();
    }
}

在这个示例中,我们判断了requestCode和resultCode是否符合预期,然后从Intent对象中取出返回的结果,并将其显示出来。

三、使用Action启动其他应用的Activity

在Android中,一个应用可以使用Action来启动另外一个应用的Activity。可以使用隐式Intent来指定Action。下面是示例代码:

Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setData(Uri.parse("http://www.baidu.com"));
startActivity(intent);

在这个示例中,我们新建了一个Intent对象,并且使用了ACTION_VIEW来指定Action,然后使用setData方法来指定要查看的网址。最后使用startActivity方法来启动对应的Activity。

四、使用Category区分Activity

在Android中,可以使用Category来区分Activity。可以使用Intent的addCategory方法来添加Category。下面是示例代码:

Intent intent = new Intent(this, SecondActivity.class);
intent.addCategory(Intent.CATEGORY_DEFAULT);
startActivity(intent);

在这个示例中,我们添加了一个Category_DEFAULT,然后使用startActivity来启动对应的Activity。

五、新建Task启动Activity

在Android中,可以使用NEW_TASK Flag来启动一个新的Task。下面是示例代码:

Intent intent = new Intent(this, SecondActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

在这个示例中,我们添加了一个FLAG_ACTIVITY_NEW_TASK标志位,并且使用startActivity来启动对应的Activity。

总结

本文详细介绍了Android中startActivity方法的基本用法、startActivityForResult方法的使用、使用Action启动其他应用的Activity、使用Category区分Activity以及新建Task启动Activity。这些方法都是Android开发中经常用到的方法,对于学习和掌握Android开发非常重要。

Android startActivity方法详解

2023-05-14
Android Messenger - 详细介绍

2023-05-17
Android退出App详解

2023-05-18
Android Task Affinity详解

2023-05-19
Android Studio注释详解

2023-05-20
Android TextToSpeech详解

2023-05-18
Android开机自启动详解

2023-05-19
提高Android应用数据传递性能的有效方法

随着用户对Android应用性能的要求不断提高,如何提高应用程序在数据传递方面的性能变得尤为重要。本文将从使用Intent传递数据、使用Bundle传递数据、使用Parcelable、序列化和反序列化

2023-12-08
Android URL Scheme详解

2023-05-17
Android URL Scheme 全方位解析

2023-05-21
Android悬浮窗实现详解

2023-05-19
Android AAR包的全面解析

2023-05-16
Android Splash: 详解安卓启动页

2023-05-18
通过Intent在Android Studio中实现界面跳转

一、为什么要使用Intent实现Activity之间的跳转 在Android应用程序开发中,如果不涉及多个Activity之间的跳转,那么很多应用的功能都不能实现。比如通讯录应用,需要从联系人列表界面

2023-12-08
Android ListView控件详解

2023-05-18
Android Studio中实现按钮跳转页面

2023-05-19
Android Activity启动流程

2023-05-24
Android Intent传递对象封装方式

一、对象传递介绍 Android开发中经常需要将对象在Activity和Fragment或Service之间进行传递,并且需要保证传递的数据完整性和正确性。在Android中,传递对象可以使用Inte

2023-12-08
Android倒计时详细解析

2023-05-21
Android DP转PX详解

2023-05-17