2016-10-05 5 views
0

キーパッドがロックされているときにアクティビティ "ActivityB"を起動します(アクティビティAはキーパッドがロックされる前に背景になっています)。 アクティビティBは30秒後にタイムアウトして終了するはずだから、30秒後に終了と呼ばれますが、ロックされていないと2つの別個のアプリ/アクティビティがバックグラウンドで表示されます。 私はIntent.ACTION_USER_PRESENT broadcastreceiverを使用してactivityBを終了しましたが、それでも動作しません。放送受信機からのバックグラウンドアクティビティを完了

たManifest.xml

<receiver 
      android:name="com.example.reciever.UnlockReceiver"> 
      <intent-filter> 
       <action android:name="android.intent.action.USER_PRESENT" /> 
      </intent-filter> 
     </receiver> 

UnlockReceiver:

private Activity b; 
onCreate() { 
b= this; 
} 
: パブリッククラスUnlockReceiverは{

@Override 
public void onReceive(Context arg0, Intent intent) { 
     if (ActivityB.b != null) { 
      ActivityB.b .finish(); 
     } 
} 

}

ActivityB BroadcastReceiverを拡張

Intent pushIntent = new Intent(context.getApplicationContext(), ActivityB.class); 
       pushIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); 

私は、デバイスのロックを解除するときonReceiveは罰金と呼ばれるが、それはバックグラウンドでActivityB finsihしない参照:3210

ActivityBは、我々がプッシュを受けるとして開始されます。したがって、私はバックグラウンドで同じアプリのうちの2つを見る

答えて

0

あなたはアクティビティbを作成しているアクティビティaの意図を持っている可能性があります。私は、マニフェストファイルに アンドロイド以下のプロパティを設定した後、問題が修正されました

+0

私は30秒後にフィニッシュと呼ばれるが、動作するように見えるdoesntの。 ActivityBはプッシュノーティフィケーションに基づいて開始されました。私はCLEAR TASKを使用しました.DOSTはアクティビティAをクリアするように見えます。 –

+0

バックグラウンドサービスでそのクリアタスクを実装しようとしました –

+0

アンドロイドを設定するように見えました:launchMode = "singleTop" –

0

:launchMode =「singleTop」

関連する問題