Application类可以是包私有的吗?

时间:2018-01-06 07:17:45

标签: java android android-studio android-studio-3.1

我的应用类代码:

import android.app.Application;
import android.os.Process;

import com.squareup.leakcanary.LeakCanary;

public class SampleApplication extends Application {

    public SampleApplication() {
        super();
    }

    @Override
    public void onCreate() {
        super.onCreate();
        //noinspection ConstantConditions
        if (LeakCanary.isInAnalyzerProcess(this)) {
            // This process is dedicated to LeakCanary for heap analysis.
            // You should not init your app in this process.
            return;
        }
        LeakCanary.install(this);
        // Normal app init code...
    }

    @Override
    public void onTerminate() {
        System.exit(0);
        Process.killProcess(Process.myPid());

        super.onTerminate();
    }
}

Android Studio 3.1 Canary 7 - >分析 - >检查代码 - > OK:

声明访问可以进行较弱的检查

1警告:SampleApplication可以是包私有

Application类可以是包私有还是lint错误?

1 个答案:

答案 0 :(得分:2)

是的,它可以是包私有的。查看堆栈溢出中的this问题,并阅读this以了解如何控制对类成员的访问。

有关进一步说明:继承自Application,您可以在没有main方法的情况下启动应用程序(继承的类充当主类)。如果您正在使用它访问其他包,则需要公开。如果没有,您可以将其设置为package-private。