Вам просто нужно, чтобы ваша активность сообщала получателю, чтобы он знал, запущен он или нет.Если у вас есть это, вы можете сделать в операторе оператор if, который будет препятствовать запуску кратных значений.
Один из вариантов - это статическое логическое значение в вашей активности, которое указывает, выполняете ли вы в данный момент.Затем вы можете проверить это логическое значение из получателя и, если оно истинно, не вызывать startActivity ().
вашей активности потребуется что-то вроде этого:
public YourActivity extends Activity{
public static isRunning = false;
public void onStart(){
...
isRunning = true;
}
public void onStop(){
...
isRunning = false;
}
}
сейчас вваш получатель вы можете сделать простое утверждение if, которое проверит значение isRunning:
public void onReceive(Context context, Intent intent) {
if(YourActivity.isRunning == false){
Intent activity = new Intent(context, Preview.class);
activity.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(activity);
}
}