📌  相关文章
📜  android studio 启动活动 - Java (1)

📅  最后修改于: 2023-12-03 15:29:21.112000             🧑  作者: Mango

Android Studio启动活动 - Java

在Android开发中,活动(Activity)是应用程序的核心组件之一。活动作为两个不同应用程序间进行通讯的媒介,是用户与应用程序之间交互的粘合剂。Android Studio是一款基于IntelliJ IDEA进行Android应用程序开发的集成开发环境(IDE),它提供了各种工具和资源来开发Android应用程序。

启动活动

在Android应用程序中启动活动需要使用Intent。Intent是一种可以用来在不同组件(如活动、服务、广播接收器等)之间传递数据的结构,它可以携带数据或不携带数据,也可以在不同组件之间传递消息。

通常我们使用以下方法来启动活动:

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

上面的代码中,MainActivity.this表示当前活动的上下文(Context),SecondActivity.class表示要启动的活动。在实际开发中,我们需要对Intent进行更多的配置,例如在Intent中添加数据、设置启动模式等。

添加数据到Intent中

我们可以在Intent中添加数据来携带一些信息给下一个活动,实现方法如下:

Intent intent = new Intent(MainActivity.this, SecondActivity.class);
intent.putExtra("data", "Hello SecondActivity");
startActivity(intent);

上面的代码中,我们在Intent中添加了一个键为"data",值为"Hello SecondActivity"的数据。在下一个活动中,我们可以通过 getIntent().getStringExtra("data") 方法来获取这个数据。

启动活动并等待结果

在某些情况下,我们需要启动一个活动并等待该活动返回结果,实现方法如下:

// 启动活动
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
startActivityForResult(intent, 1);

// 接收结果
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == 1 && resultCode == RESULT_OK) {
        String result = data.getStringExtra("result");
        Log.d(TAG, "onActivityResult: " + result);
    }
}

上面的代码中,我们通过调用 startActivityForResult() 方法来启动一个活动,并指定请求码为1。在上一个活动中,我们可以通过 setResult() 方法来返回一个结果,如下所示:

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

上面的代码中,我们在Intent中添加了一个键为"result",值为"Hello MainActivity"的数据。在通过 setResult() 后,我们调用 finish() 方法来销毁当前活动并返回结果。

启动活动的模式

在Android中,活动有四种启动模式:standard、singleTop、singleTask、singleInstance。各种启动模式的含义如下:

  • standard:标准模式,每次启动活动都会创建一个新的实例;
  • singleTop:栈顶复用模式,如果要启动的活动已经位于任务栈的栈顶,则不会创建新的实例,并且会回调 onNewIntent() 方法。否则会创建新的实例;
  • singleTask:栈内复用模式,如果要启动的活动已经存在于任务栈中,则将其出栈,并回调 onNewIntent() 方法。否则创建新的实例并入栈;
  • singleInstance:单实例模式,只要活动在任务栈中存在,就不会创建新的实例,且它独占一个任务栈。

可以通过在 AndroidManifest.xml 文件中设置活动的启动模式,如下所示:

<activity
    android:name=".SecondActivity"
    android:launchMode="singleTop"
    android:label="SecondActivity">
</activity>
总结

通过本文介绍,我们了解了如何在Android Studio中启动活动。同时,我们学习了如何在Intent中添加数据、如何启动活动并等待结果、以及活动的启动模式等。这些知识点对于Android应用程序的开发都是非常重要的。