我正在制作一个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)为空的错误。这是实际的错误:
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
}
}
最佳答案
我更新了CordovaActivty类以扩展AppCompatActivity,因为我不得不处理工具栏。
我不确定这是否正确,但是对我来说效果很好。
关于java - 如何在Android Java代码中同时使用CordovaActivity和AppCompatActivity?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39610529/