2016-09-21 4 views
0

CordovaActivity로 MainActivity 클래스를 확장해야하므로 Cordova 플러그인을 만들고 있습니다. 또한 AppCompatActivity를 사용해야합니다. 네이티브 애플 리케이션에서 AppCompatActivity로 MainActivity를 확장했지만 모든 것이 잘 작동했지만 두번 확장 할 수는 없습니다.Android Java 코드에서 CordovaActivity와 AppCompatActivity를 어떻게 사용합니까?

백그라운드에서 계속 실행하려면 몇 가지 코드를 실행하려고합니다. 나는이에서 onCreate 내에서 시도 할 때 :

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

내가 전역 변수 정의 :

private AppCompatActivity appCompat; 

를 내가 널되는 컨텍스트 (APPCOMPAT)에 대한 실행시 오류가 발생합니다. 이것은 실제 오류입니다 : 내가 확장으로 그것을 사용하지 않고 AppCompatActivity을 사용하는 방법을

java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.Context android.content.Context.getApplicationContext()' on a null object reference 

사람이 알고 있나요?

(편집 : 나는 명확성을 위해 전체 클래스를 첨부했습니다)

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 클래스를 업데이트했습니다. 올바른 접근 방식인지 확실하지 않지만 제대로 작동합니다.

관련 문제