您好,我正在实现SDK,并且需要一些代码的上下文,因此,为了访问上下文,我在Application类中实现了这一点:
public class SDKApp extends Application {
private static SDKApp sdkContext;
public static Context getContext() {
return sdkContext;
}
@Override
public void onCreate() {
super.onCreate();
sdkContext = this;
}
}
为了进行测试,我使用的是Robolectric,但是上下文返回的是空值:
@RunWith(RobolectricTestRunner.class)
public class CallTest {
private Context context = RuntimeEnvironment.application;
@Test
public void emailAuthenticationSuccessfulTest() {
if (BuildConfig.FLAVOR.equals("dev")) {
Context context = SDKApp.getContext();
assertNotNull(context);
}
}
}
对此有一些想法吗?
谢谢
答案 0 :(得分:1)
像这样将您的SDKApp类添加到清单应用程序标记中
<application
android:name="SDKApp" // your complete package path to your SDKApp
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme">
答案 1 :(得分:1)
确保您的SDKApp
像
AndroidManifest.xml
中注册
<application
android:name="SDKApp"
然后您可以致电SDKApp.getContext()
,否则您总是从SDKApp.getContext()
获得空值
谢谢。