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

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

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

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

4

1 回答 1

2

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

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

于 2018-01-06T07:41:30.090 回答