2016-11-04 4 views
-1

アクティビティの段階(onPause、onRestart、onDestroyなど)でグローバル変数(オブジェクト)を使用しようとしていますが、それへのアクセス。Android - ライフ・トランジション中に変数を使用できない

どうすればこの問題を解決できますか?ここに私が意味するものの例があります。

編集:更新された例。

public class MainActivity extends AppCompatActivity { 
    private X myObject = null; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     myObject = new X(); 
    } 

    @Override 
    protected void onPause(){ 
     super.onPause(); 
     myObject.doSomething(); 
    } 
} 


public class X { 
    public X() {} 
    public void doSomething(){} 
} 

これは私がおよそ

java.lang.RuntimeException: Unable to pause activity java.lang.NullPointerException 

私は、コードのいくつかの部分で方法のonCreateで初期化し、完璧に動作している同じmyObjectという変数を使用していますが話していたエラーの種類です。だからそれは問題ではありません。

最後の編集:Android Studio IDEのバグだったようです。私は新しいプロジェクトを作り、同じコードをコピー&ペーストしなければならなかった。とにかく答えてくれてありがとう。

+0

変数型がありません –

+0

'onCreate'メソッドでは、グローバル変数に値を代入せずに新しい変数を宣言しています。 –

答えて

0
public class MainActivity extends AppCompatActivity { 
    private ***MyObject*** myObject; 

    @Override 
    protected void onPause(){ 
     super.onPause(); 
     myObject.doSomething(); 
    } 
} 

変数には型が必要です。変数タイプを定義します。ライフサイクルの方法でアクセスできます。

+0

申し訳ありませんが、それはタイプミスと悪い例でした。これは実際のコードではありません。それは私の問題の簡単な概念です。 – asdfasdfwe

+0

myobjectクラスのクラスまたはメソッドのいずれかが、他のクラスまたは外部クラスで呼び出すためのアクセス権を持たないことがあります。 –

関連する問題