繁体   English   中英

应用程序类可以是包私有的吗?

[英]Can Application class be package-private?

我的应用程序类代码:

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 --> 分析 --> 检查代码 --> 确定:

声明访问可以是较弱的检查

1 个警告:SampleApplication 可以是包私有的

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

是的,它可以是私有的。 查看 Stack overflow 中的这个问题,并阅读这个问题以了解如何控制对类成员的访问。

进一步解释:从 Application 继承允许您在没有 main 方法的情况下启动应用程序(继承的类充当主类)。 如果您使用它访问其他包,它需要公开。 如果没有,您可以将其设置为包私有。

只需将public修饰符添加到您无法访问的类

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM