实现Android Activity只允许开一个Activity

1. 流程图

graph TB
    start(开始)
    check(检查是否已存在Activity)
    finish(结束)
    
    start --> check
    check --> |已存在Activity| finish
    check --> |不存在Activity| finish

2. 步骤及代码示例

步骤1:在BaseActivity中添加静态变量isActivityAlive

public class BaseActivity extends AppCompatActivity {
    protected static boolean isActivityAlive = false;
}

步骤2:在onCreate方法中设置isActivityAlive为true,在onDestroy方法中设置isActivityAlive为false

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (isActivityAlive) {
        finish(); // 关闭当前Activity
        return;
    }
    isActivityAlive = true;
    // 其他初始化操作
}

@Override
protected void onDestroy() {
    super.onDestroy();
    isActivityAlive = false;
}

步骤3:在AndroidManifest.xml中注册BaseActivity

<application ...>
    <activity android:name=".BaseActivity"></activity>
</application>

3. 类图

classDiagram
    BaseActivity <|-- YourActivity
    BaseActivity : + isActivityAlive
    BaseActivity : + onCreate()
    BaseActivity : + onDestroy()

4. 饼状图

pie
    title Android Activity只允许开一个Activity实现步骤
    "步骤1" : 1
    "步骤2" : 1
    "步骤3" : 1

结尾

通过以上步骤,你可以实现Android Activity只允许开一个Activity的功能。这样可以确保在应用程序中始终只有一个指定的Activity处于活动状态,避免了多个相同Activity同时打开的情况,提升了用户体验。希望以上内容对你有所帮助,祝你在Android开发中越来越进步!