2016-09-21 25 views
0

私はCordovaActivityでMainActivityクラスを拡張する必要があるので、Cordovaプラグインを作成しています。私はまた、AppCompatActivityを使用する必要があります。ネイティブアプリでは、MainActivityをAppCompatActivityで拡張し、すべて正常に機能しましたが、私のCordovaプラグインでは2回拡張できません。AndroidのJavaコードでCordovaActivityとAppCompatActivityの両方を使用するにはどうすればよいですか?

バックグラウンドで実行し続けるためにいくつかのコードを起動しようとしています。私はの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 
    } 
} 

答えて

0

は、まあ、それは私がバックグラウンドでサービスを実行するためにAppCompatActivityを使用する必要はありませんが判明しました。私は単純に使用することができます:

Intent intent = new Intent(this, MyClass.class); 
startService(intent) 

それはうまく動作します。

1

私はツールバーを扱わなければならないので、AppCompatActivityを拡張するためにCordovaActivtyクラスを更新しました。 私はそれが正しいアプローチであるかどうかはわかりませんが、それは私のためにうまくいきます。

関連する問題