2016-07-22 22 views
2

私は自分のプラグインを既存のゲームエンジン用に書いています(つまり、メインアプリケーションとの関係でサードパーティのlibだと言っています)。Android:Acivity.onNewIntent()のリスナーを設定する方法

私はMainActivityソースにアクセスできません。

しかし、私は何らかの形でメインアクティビティlifecycleイベント(onCreate, onDestroy, onPause, onResume, onNewIntentと他の重要ではないもの)に反応する必要があります。

Application.ActivityLifecycleCallbacksのおかげで、私はそれらのほとんどに問題はありません。

onNewIntent()で問題が発生します。私はこのイベントのためにlistenerを見つけることができず、それを処理する方法を想像しています。

誰もがonNewIntentイベントをキャッチする方法を知っていますか(それを上書きする以外は確かに)?

答えて

1

onNewIntent()は、すでにスタック内の別の場所で実行singleTopまたはsingleTask活動のために動作します。 singleTopまたはsingleTask属性を持つMainActivityは、コードの下に使用している場合でも、それは動作しません、と宣言されていない場合:getIntentを利用することによって)

@Override //won't be called if no singleTop/singleTask attributes are used 
protected void onNewIntent(Intent intent) { 
    super.onNewIntent(intent); 
    // ...  
} 

をフックすべてのセットアップロジックを確保するために、それが最善の使用onResume(あります( )。

@Override 
protected void onResume() { //will be called in any cases 
    super.onResume(); 
    // getIntent() should always return the most recent   
} 
+0

onResumeのインテントを取得し、これを以前のものと比較することは悪い考えではありません。意図が異なる場合は、私が新しい意図に対して何をしなければならないかを行うことができます。私の場合、遅れは許容されます。受け入れられました。 ) – Papirosnik

関連する問題