0

アプリケーションにセッション タイムアウトを実装しています。ここで私がやりたいことは、アプリケーションが表示されている場合 (つまり、表示されている場合) にのみ、ログイン アクティビティを起動することです。

final List<RunningTaskInfo> tasks = activityManager.getRunningTasks(Integer.MAX_VALUE);

    for (RunningTaskInfo runningTaskInfo : tasks) {
        runningactivities.add(0,runningTaskInfo.topActivity.toString());  
    }

しかし、どちらの場合もログインアクティビティを起動するため、これはうまくいきません..

助けてください!!ありがとう

4

1 に答える 1

0

1 つの解決策は、アクティビティでインテント レシーバーを使用することです。新しいアクティビティを起動するだけのアクティビティにレシーバーを登録できます。次に、sendBroadcast(intent) を使用して新しいアクティビティを起動できます。以下に示すように、各アクティビティで受信者を登録および登録解除する必要があります。

@Override
protected void onResume() {
    IntentFilter filter = new IntentFilter(CONSTANT_FOR_INTENT);
    registerReceiver(receiver, filter);
    }

@Override
protected void onDestroy() {
    unregisterReceiver(receiver);
}

private BroadcastReceiver receiver = new BroadcastReceiver() {

    @Override
    public void onReceive(Context context, Intent intent) {
        //handle the intent here - launch activity, etc
    }
};

これで、これでアクティビティを開始できます。

Intent intent=new Intent(CONSTANT_FOR_INTENT);
sendBroadcast(intent);

sendOrderedBroadcast を使用して優先度を設定し、アクティビティが実行されていない場合にインテントで別のことを行うこともできます。

于 2012-12-23T21:15:11.393 に答える