android studio主程序MainActivity
时间: 2025-06-09 09:30:46 浏览: 23
### Android Studio 中 MainActivity 的示例及用法
#### 1. **MainActivity 类的基础结构**
`MainActivity` 是 Android 应用中最常见的入口点之一,通常作为应用程序的第一个界面展示给用户。它是一个继承自 `AppCompatActivity` 或其他基础 Activity 的 Java/Kotlin 文件[^1]。
以下是基于 Kotlin 和 Java 编写的两个常见 `MainActivity` 示例:
---
#### 2. **Kotlin 版本的 MainActivity 示例**
```kotlin
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.material.Surface
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material.MaterialTheme
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
MyApplicationTheme {
Surface(
modifier = Modifier.fillMaxSize(),
color = MaterialTheme.colorScheme.background
) {
Greeting("Android")
}
}
}
}
}
@Composable
fun Greeting(name: String) {
Text(text = "Hello $name!")
}
```
此代码展示了如何通过 Jetpack Compose 创建一个简单的 UI 组件,并将其嵌入到 `MainActivity` 中[^3]。
---
#### 3. **Java 版本的 MainActivity 示例**
```java
package com.example.myapp;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.button_hello).setOnClickListener(this); // 设置按钮监听器
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button_hello:
Toast.makeText(getApplicationContext(), "Button Clicked!", Toast.LENGTH_SHORT).show();
break;
}
}
}
```
在此示例中,`MainActivity` 实现了 `View.OnClickListener` 接口来响应视图点击事件。
---
#### 4. **JNI 集成示例**
如果需要在 `MainActivity` 中调用本地方法(C/C++),可以参考以下实现方式:
```java
package com.example.myjni;
import android.os.Bundle;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
static {
System.loadLibrary("native-lib");
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String helloMessage = new FirstJni().sayHello(); // 调用 JNI 方法
Toast.makeText(getApplicationContext(), helloMessage, Toast.LENGTH_SHORT).show();
}
}
```
上述代码片段演示了一个基本的 JNI 调用流程,其中 `FirstJni` 是封装本地函数的类[^2]。
---
#### 5. **多线程开发示例**
为了提高性能并避免阻塞主线程,在 `MainActivity` 中可以通过创建子线程执行耗时操作:
```java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(2000); // 模拟耗时任务
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(MainActivity.this, "Task Completed", Toast.LENGTH_SHORT).show();
}
});
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}).start();
}
```
这段代码说明了如何利用 `Thread` 执行后台任务,并通过 `runOnUiThread()` 更新 UI[^4]。
---
### 总结
以上分别介绍了 `MainActivity` 在不同场景下的典型用法,包括基础功能、Jetpack Compose 整合、JNI 调用以及多线程编程等内容。开发者可以根据具体需求选择合适的方案进行扩展和优化。
阅读全文
相关推荐




















