android 的Service里面多次启动一个Activity只能用FLAG_ACTIVITY_NEW_TASK,那么怎么才能只启动一次呢?

具体是这样的:我有一个Service监听短信,当来短信的时候就启动一个Activity1。并且我需要在Activity2里面也启动它。怎么么样才能只启动一个?当启动的Ac... 具体是这样的:我有一个Service监听短信,当来短信的时候就启动一个Activity1。并且我需要在Activity2里面也启动它。怎么么样才能只启动一个?当启动的Activity1被用户按了home被置于后台了,怎么才能在来短信的时候唤起它,而不是在启动一个? 展开
 我来答
QQMSD8
推荐于2017-09-19 · 知道合伙人软件行家
QQMSD8
知道合伙人软件行家
采纳数:6788 获赞数:13239
没有做不到,只有想不到,帮助别人的同时也是对自己的提升

向TA提问 私信TA
展开全部
Activity只启动一次,需要设置Activity的启动模式。Activity启动模式有4种,分别为standard、singleTop、singleTask、singleInstance,只要设置为 singleTask就只会启动一次。

关于Activity四种启动模式的说明:
1.standard 默认模式,可以不用写配置。在这个模式下,都会默认创建一个新的实例。因此,在这种模式下,可以有多个相同的实例,也允许多个相同Activity叠加。

2.singleTop 可以有多个实例,但是不允许多个相同Activity叠加。即,如果Activity在栈顶的时候,启动相同的Activity,不会创建新的实例,而会调用其onNewIntent方法。
3.singleTask 只有一个实例。在同一个应用程序中启动他的时候,若Activity不存在,则会在当前task创建一个新的实例,若存在,则会把task中在其之上的其它Activity destory掉并调用它的onNewIntent方法。
3.singleInstance只有一个实例,并且这个实例独立运行在一个task中,这个task只有这个实例,不允许有别的Activity存在。
逸juwend
2013-02-21 · TA获得超过232个赞
知道小有建树答主
回答量:298
采纳率:0%
帮助的人:257万
展开全部
其实我不太明白你说的activity1和activity2是什么关系
但是,你可以试下,使用
addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP)

把前面开的那个清了
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
k67395333
2013-02-14 · TA获得超过322个赞
知道小有建树答主
回答量:217
采纳率:0%
帮助的人:115万
展开全部
你为什么不注册一个接受短信的广播呢?
当有短信来时,在广播接收器里启动Activity1。Activity1使用singleTask模式。
更多追问追答
追问
有的软件有屏蔽陌生短信电话的功能。
追答
我想那你应该知道,原生的短信应用将短信息存在哪里了,还有第三方应用是否对这些数据可读。
这个功能我也没有做过,建议你可以到CSDN或者其他比较专业一点的论坛去问。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式