首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从活动堆栈完成/终止活动(活动由服务开始)

如何从活动堆栈完成/终止活动(活动由服务开始)
EN

Stack Overflow用户
提问于 2017-10-03 10:02:57
回答 5查看 778关注 0票数 1

我正在为一些营销公司制作应用,.Aim是在某个时候向用户展示他们的产品(使用时将选择一个小时,应用程序将在一小时后显示公司的最新产品) .I与报警经理进行了服务和调度,并调用了报警经理的活动,.Activity将获得产品信息和关闭按钮。

我所面临的问题

==>警报管理器触发服务在一些随机时间,==>活动显示很好,但在关闭按钮(我在这里调用finish() )。活动保持在活动堆栈中(应该删除)

流形

代码语言:javascript
运行
复制
 <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

代码语言:javascript
运行
复制
 Intent i = new Intent();
                i.putExtra("s", 1);
                i.setClass(this, BDriverActivity.class);
                i.setFlags(DriveFile.MODE_READ_ONLY);
                startActivity(i);
                stopSelf();

BDriverActivity

代码语言:javascript
运行
复制
    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经理

代码语言:javascript
运行
复制
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);
         }
EN

回答 5

Stack Overflow用户

发布于 2017-10-03 10:12:20

您需要在清单中添加下面的代码行

代码语言:javascript
运行
复制
<activity android:label="Product"  android:name=".BDriverActivity" android:noHistory="true">

希望这对你有帮助

票数 0
EN

Stack Overflow用户

发布于 2017-10-03 10:13:08

尝试添加FLAG_ACTIVITY_NEW_TASK,如FLAG_ACTIVITY_CLEAR_TOP文档中所述:

代码语言:javascript
运行
复制
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); 
票数 0
EN

Stack Overflow用户

发布于 2017-10-03 10:15:01

设置意图标志,以便像这样清除任务

代码语言:javascript
运行
复制
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);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46542000

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档