3

私のアプリでは、IntentServiceクラスを使用してバックグラウンドで別のアクティビティを開始しています。しかし、私が得た問題は、IntentServiceクラスからアクティビティを開始すると、アクティビティが開き、その後アクティビティを閉じないとします。IntentService次に、クラスが再び同じアクティビティを開始したいときに、同じアクティビティが閉じていないため呼び出されないことに気付きました。

IntentServiceそれで、私の質問は、クラスから開いているか閉じているかに関係なく、同じアクティビティを何度も開始するにはどうすればよいですか?

IntentService クラスのコード

public class AlarmService extends IntentService
{       

    public void onCreate() {
        super.onCreate();
    }

    public AlarmService() {
        super("MyAlarmService");
    }
    
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        super.onStartCommand(intent, startId, startId);
        return START_STICKY;
    }

    @Override
    protected void onHandleIntent(Intent intent) {          
        startActivity(new Intent(this, 
            AlarmDialogActivity.class).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
    }       
}
4

1 に答える 1

6

マニフェスト ファイルで launchMode タグを使用する

  <activity
        android:name=".ActivityName"

        android:launchMode="singleTask"  />

すでに利用可能な場合、アクティビティの別のインスタンスは作成されません..

理解を深めるために、このリンクlaunchModeを参照してください

于 2012-07-07T06:56:41.390 に答える