我正在为某些营销公司制作应用程序.aim是在某个时候向用户展示其产品(使用会选择一个小时,应用程序将在一个小时后显示公司的最新产品)。
我面临的问题
==>警报管理器在某个随机时间触发服务==>活动表现良好,但在关闭按钮上(我在这里呼叫完成())。活动保留在活动堆栈中(应该删除)
示例
<service
android:name=".HelperService"
android:label="Product Service"
android:enabled="true">
</service>
<activity android:label="Product" android:name=".BDriverActivity">
<intent-filter>
<action android:name="android.intent.action.ACTIVE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
helperService
Intent i = new Intent();
i.putExtra("s", 1);
i.setClass(this, BDriverActivity.class);
i.setFlags(DriveFile.MODE_READ_ONLY);
startActivity(i);
stopSelf();
bdriveractivity
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(1);
getWindow().setFlags(AccessibilityNodeInfoCompat.ACTION_NEXT_HTML_ELEMENT, AccessibilityNodeInfoCompat.ACTION_NEXT_HTML_ELEMENT);
SHOWPRODUCT();
// on click of close call FINISH()
}
Alaram Manager
int mint=Global.mints;
Calendar cal = Calendar.getInstance();
cal.add(Calendar.SECOND, 10);
Intent intent = new Intent(activity, HelperService.class);
PendingIntent pintent = PendingIntent.getService(activity, 0, intent, 0);
AlarmManager alarm = (AlarmManager) activity.getSystemService(Context.ALARM_SERVICE);
int i;
i=60*mint;
alarm.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(),
i* 1000, pintent);
}
您需要在清单中添加以下代码行
<activity android:label="Product" android:name=".BDriverActivity" android:noHistory="true">
希望可以帮助您
设置以下清除任务的意图
Intent i = new Intent();
i.putExtra("s", 1);
i.setClass(this, BDriverActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK)
i.setFlags(DriveFile.MODE_READ_ONLY);
startActivity(i);
尝试此希望对您有帮助
- 使用程序化完成,只需使用此
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
- 您可以完成
maninfest
中的几个更改
<activity android:label="Product"
android:name=".BDriverActivity"
android:noHistory="true">
乐于帮助您
https://developer.android.com/guide/topics/manifest/Activity-element.html#exclude
使用Dublude_from_rencents flag