キーパッドがロックされているときにアクティビティ "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つを見る
私は30秒後にフィニッシュと呼ばれるが、動作するように見えるdoesntの。 ActivityBはプッシュノーティフィケーションに基づいて開始されました。私はCLEAR TASKを使用しました.DOSTはアクティビティAをクリアするように見えます。 –
バックグラウンドサービスでそのクリアタスクを実装しようとしました –
アンドロイドを設定するように見えました:launchMode = "singleTop" –