为什么我不能在这里使用getBaseContext()?

Tra*_*ang 1 android android-context

我想尝试使用以下代码从我的设置中获取一些值:

import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import android.content.*;
public class TCPdumpHandler {

    public void getPreference() {

        SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
        Boolean checkboxPreference = prefs.getBoolean("checkboxPref", true);
    }
}
Run Code Online (Sandbox Code Playgroud)

但错误是: The method getBaseContext() is undefined for the type TCPdumpHandler

你能告诉我原因吗?

dmo*_*mon 5

因为TCPdumphandler不从Activity扩展.getBaseContext()是该类的方法(从技术上讲,是ContextWrapper类的方法).您需要将上下文传递给构造函数TCPdumphandler.