如何运行申请class只到特定的activityclass?

How to run Application class only to specific activity class?

在我的算法中,如何在主菜单中仅 Application.java 运行 至于现在,MyApplication.java 运行 在每个活动上。我已经在我的主菜单上尝试过了,但是没有用。

@Override
    protected void onResume() {
        super.onResume();
        SystemRequirementsChecker.checkWithDefaultDialogs(this);
        beaconManager.connect(new BeaconManager.ServiceReadyCallback() {
            @Override
            public void onServiceReady() {
                beaconManager.startRanging(region);
            }
        });

    }
    @Override
    protected void onPause() {
        super.onPause();
        beaconManager.stopRanging(region);
        finish();
    }

    @Override
    protected void onStart() {
        super.onStart();
        beaconManager.stopRanging(region);
    }

    @Override
    public void onStop(){
        super.onStop();
        beaconManager.stopMonitoring(region);
        beaconManager.stopRanging(region);
        finish();
        System.runFinalizersOnExit(true);
        System.exit(0);
        android.os.Process.killProcess(android.os.Process.myPid());
    }

我强烈建议您重新访问 Android app fundamentals and The Lifecycle Activity, as it looks like you could brush up on some core Android concepts. You also want to check why exiting apps on Android is frowned upon

docs say 一样,Application 是维护全局应用程序状态的基础 class,当您的 application/package 被创建。因此,您不能只是禁用它。

如果我的理解是正确的,你想要表示某种状态,这表示用户已经通过所有初始要求(登录和 IMEI 检查)并且现在已经完全访问应用程序功能。暂时忽略我们拥有的现代工具,一个非常基本的方法可能是一个简单的 class 提供主菜单功能,例如:

class MainMenu {
  private final Context appContext;
  private final BeaconManager manager;

  public MainMenu(@NotNull Context context) {
    appContext = context.getApplicationContext();
    manager = BeaconManager.getBeaconManager(context);
  }

  public void connectBeacon(@NotNull Callback callback) {
    beaconManager.connect(new BeaconManager.ServiceReadyCallback() {
      @Override
      public void onServiceReady() {
        beaconManager.startRanging(region);
        callback.onSuccess(region);
      }
    });
  }

  public void disconnectBeacon(@NotNull Region region) {
    if (manager.isRanging(region)) {
      beaconManager.stopRanging(region);
    }
  }
}

您在 MainMenuActivity 中创建的,或者在成功登录后为每个 Activity 实例创建的基础 class。

更好的选择是遵循一种架构模式,尤其是当您的应用程序大于几个 classes 时。如果你不能决定哪个,你可以检查 Android Architecture Components. Another useful pattern/technique to consider is Dependency Injection - with a library such as Dagger2,你可以利用 subcomponentsscopes 来实现你想要的分离再之后。

基本上你不能,应用程序 Class 在你 运行 应用程序创建时创建(即使在 backgrand 中)。

这是github的概述,介绍应用程序Class

The Application class in Android is the base class within an Android app that contains all other components such as activities and services. The Application class, or any subclass of the Application class, is instantiated before any other class when the process for your application/package is created.

完整描述

github