100分 怎样禁止Activity重新onCreate

QQ515311445 2012-10-18 02:54:45
前提1: 不准用android:launchMode="singleTask"
前提2: 不准用Intent.FLAG_ACTIVITY_NEW_TASK
问题: 按Home键隐藏了程序之后,再次调用程序时禁止Activity重新onCreate,而是直接显示出来.
解决者可以自己要求给多少分都行,只要在本人的可用分数内.
...全文
1032 33 打赏 收藏 转发到动态 举报
写回复
用AI写文章
33 条回复
切换为时间正序
请发表友善的回复…
发表回复
小胜子 2014-04-23
  • 打赏
  • 举报
回复
singleInstance
avi9111 2014-02-16
  • 打赏
  • 举报
回复
一个之字有14种写法么? 为什么不准用
QQ515311445 2012-12-08
  • 打赏
  • 举报
回复
就像一个跷跷板,没人能搞定啊
QQ515311445 2012-10-26
  • 打赏
  • 举报
回复
[Quote=引用 29 楼 的回复:]
<activity
android:name=".app.entry.BootActivity"
android:label="@string/app_name"
android:theme="@style/translucent"
android:launchMode="singleTop" >
[/Quote]
singleTop我早试过了,和NEW_TASK一样,会让我的Activity不能显示到地图之上.
优秀APP开发 2012-10-25
  • 打赏
  • 举报
回复

<activity
android:name=".app.entry.BootActivity"
android:label="@string/app_name"
android:theme="@style/translucent"
android:launchMode="singleTop" >
gujinf2008 2012-10-24
  • 打赏
  • 举报
回复
按home键后,再进入应用应该不会走oncreate的,你是不是设计逻辑出了问题?你是不是本身把自己finish掉了呢?
东子哥7 2012-10-24
  • 打赏
  • 举报
回复
//--------------
http://topic.csdn.net/u/20121018/12/7c3af197-b4f4-4b73-9e02-ecb510eeb476.html?48255
我自己写了一个Lanucher,这个Lanucher启动了地图,然后我这个Lanucher等30秒后会自动调用startActivity来启动Lanucher本身的一个activity,现这个被启动的activity不能显示在地图之上,有什么方法可以让它显示在地图之上.
注意:地图使用了android:launchMode="singleTask"以保证只启动一次.
//------------------

楼主的这个问题跟上面的问题,本质上应该是同一个问题吧,会重新调用oncreate,系统正常情况下是要这么走法(除非用什么特殊方式,但真的不建议这么弄,除非你要定制非通过版本的系统),
看能不能换个思路,比如地图调用方式上做些改变.
QQ515311445 2012-10-24
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 的回复:]
估计应用层很难实现了,mark下
[/Quote]
应用层应该可以实现吧,这么简单的功能都不行吗?
QQ515311445 2012-10-24
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 的回复:]
>>>因为按HOME键后,程序转到后台了,不startActivity能显示到前台吗?

首先,按HOME后回到launcher,再从launcher上面点击程序图标启动程序,是不是走oncreate的,这一点应该是没有问题吧。

楼主想通过自己的代码再次启动你的程序,所以我建议楼主看看launcher是怎么启动程序的。它都能做到,你的也应该是能做到的。

对了,为什么不能用"sing……
[/Quote]
launcher加了NEW_TASK属性,我的不能加,加了我的界面不能弹出到地图前面,可见:
http://topic.csdn.net/u/20121018/12/7c3af197-b4f4-4b73-9e02-ecb510eeb476.html?seed=135934681&r=79926450#r_79926450
铁真木 2012-10-24
  • 打赏
  • 举报
回复
oncreate只调用一次,重新唤醒不调用
leehong2005 2012-10-24
  • 打赏
  • 举报
回复
>>>因为按HOME键后,程序转到后台了,不startActivity能显示到前台吗?

首先,按HOME后回到launcher,再从launcher上面点击程序图标启动程序,是不是走oncreate的,这一点应该是没有问题吧。

楼主想通过自己的代码再次启动你的程序,所以我建议楼主看看launcher是怎么启动程序的。它都能做到,你的也应该是能做到的。

对了,为什么不能用"singleTask"?
QQ515311445 2012-10-20
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 的回复:]
按home键后,activity 应该处于pause状态,如果没有finish或者被android kill掉的话,
再次启动应该不会执行OnCreate。
另外,8楼的方法我测试没有成功。
重在参与!
[/Quote]
我自己写的其它APK也正常,就是地图有这个问题
KPRF2009 2012-10-19
  • 打赏
  • 举报
回复
估计应用层很难实现了,mark下
jefferyyangkai 2012-10-19
  • 打赏
  • 举报
回复
按Home键隐藏了程序之后,按照原理你不能可能控制它不被系统杀掉(有办法提升自己不被杀几率),被杀了再唤起一定会走oncreat,这个应该是没有疑问的(据我了解)。
我给出的意见是,让activity尽量不被杀,似乎绑定一个后台service可以吧?或者最hack的办法就是一直播放没声音的音乐(ios5以上的后台进程就是这么实现的)。
不一定能百分百解决问题,希望给你个思路或者些许帮助吧
搬不搬砖 2012-10-19
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 的回复:]
引用 14 楼 的回复:
startActivity,这时可以再intent里面加入flag,有个一可以reorder Activity的,也许可以帮到你

FLAG_ACTIVITY_REORDER_TO_FRONT是不能达到要求的FLAG_ACTIVITY_NEW_TASK是可以让地图不重新OnCreate,但会让我的启动地图的APK的Activity不能弹到地图前面,而是被地图挡住了.……
[/Quote]

地图和启动地图的APK的Activity是什么关系?
QQ515311445 2012-10-19
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 的回复:]
startActivity,这时可以再intent里面加入flag,有个一可以reorder Activity的,也许可以帮到你
[/Quote]
FLAG_ACTIVITY_REORDER_TO_FRONT是不能达到要求的FLAG_ACTIVITY_NEW_TASK是可以让地图不重新OnCreate,但会让我的启动地图的APK的Activity不能弹到地图前面,而是被地图挡住了.
jefferyyangkai 2012-10-19
  • 打赏
  • 举报
回复
startActivity,这时可以再intent里面加入flag,有个一可以reorder Activity的,也许可以帮到你
QQ515311445 2012-10-19
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 的回复:]
lz为什么要“再次startActivity”?是不是哪里的逻辑有问题
[/Quote]
因为按HOME键后,程序转到后台了,不startActivity能显示到前台吗?
搬不搬砖 2012-10-19
  • 打赏
  • 举报
回复
lz为什么要“再次startActivity”?是不是哪里的逻辑有问题
AMinfo 2012-10-19
  • 打赏
  • 举报
回复
建议楼主去改框架实现
加载更多回复(11)

80,349

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧