一、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开发非常重要。