我正在制作Cordova插件,所以我需要使用CordovaActivity扩展MainActivity类。我还需要使用AppCompatActivity。在本机应用程序中,我使用AppCompatActivity扩展了MainActivity,一切正常,但在我的Cordova插件中,我无法延长两次。
我尝试启动一些代码以继续在后台运行。当我在onCreate中尝试这个时:
appCompat = new AppCompatActivity();
Intent intent = new Intent(this, MyClass.class);
appCompat.startService(intent);
我定义全局变量:
private AppCompatActivity appCompat;
我在运行时遇到关于上下文(appCompat)为null的错误。这是实际错误:
java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.Context android.content.Context.getApplicationContext()' on a null object reference
有没有人知道我如何使用AppCompatActivity而不将其用作扩展名?
(编辑:为了清楚起见,我已经附上了全班)
public class MainActivity extends CordovaActivity {
private AppCompatActivity appCompat;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Context context = this.getBaseContext();
Intent intent = new Intent(context, MyClass.class);
appCompat = new AppCompatActivity();
appCompat.startService(intent); // CAUSES CRASH AT RUNTIME
}
}
答案 0 :(得分:1)
我更新了CordovaActivty类以扩展AppCompatActivity,因为我不得不处理工具栏。 我不确定它是否是正确的方法,但对我来说效果很好。
答案 1 :(得分:0)
事实证明,我不需要使用AppCompatActivity在后台运行服务。我可以简单地使用:
Intent intent = new Intent(this, MyClass.class);
startService(intent)
它运作得很好。