我的应用程序中有 Activity (A、B、C)。当我启动应用程序时 Activity A:
A:onCreate()
A:onStart()
A:onResume()
我正在使用 Intent 调用第二个 Activity (A -> B):
A:onPause()
B:onCreate()
B:onStart()
B:onResume()
A:onStop()
然后我点击“主页”按钮所以应用程序进入后台:现在
B:onPause()
B:onStop()
1 或 2 小时后,我再次进入我设备的主页并单击它运行的应用程序图标:
B:onDestroy()
A:onRestart()
A:onStart()
A:onResume()
但我需要去哪一个 Activity 我就这样退出了,
B:onRestart()
B:onStart()
B:onResume()
我读过一些文章,它说 Activity 因为不再可见而被系统杀死。有没有可能解决我的问题...
提前致谢...
最佳答案
你可能会混淆两个不同的东西:
如果 Android 需要内存,它不会终止 Activity 。它所做的是终止 Activity 正在运行的整个进程。一般来说,这意味着 Android 会终止您在这种情况下的所有 Activity 。但是,它会记住 Activity 堆栈,当用户返回应用程序时,Android 将创建一个新进程,然后重新创建每个 Activity (根据需要依次创建)。它首先重新创建 Activity 堆栈顶部的 Activity (即:用户离开应用程序的位置)。
Android 假定如果用户长时间离开任务(我认为这大约是 30 分钟),那么他就不再对该任务感兴趣,并且有记住用户在该任务的 Activity 堆栈中的位置是没有意义的,因为他可能不再关心了。在这种情况下,发生的情况是,当用户返回任务(或重新启动该任务中 Activity 堆栈顶部的应用程序)时,Android 只是将任务清除回根 Activity .这具有应用程序看起来重新开始的效果。这是期望的(记录在案的行为)。
您想要做的是阻止 Android 清除情景 #2 中的任务。你通过添加来做到这一点
android:alwaysRetainTaskState="true"
到<activity> 根 Activity 的标签(即:启动您的应用程序的 Activity ,带有 ACTION_MAIN 和 CATEGORY_LAUNCHER 的 Activity )。
关于android - 如果在 Android 中不再可见,则 Activity 被系统杀死的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11665483/
我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po
尝试通过RVM将RubyGems升级到版本1.8.10并出现此错误:$rvmrubygemslatestRemovingoldRubygemsfiles...Installingrubygems-1.8.10forruby-1.9.2-p180...ERROR:Errorrunning'GEM_PATH="/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/ruby-1.9.2-p180@global:/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/rub
我希望我的UserPrice模型的属性在它们为空或不验证数值时默认为0。这些属性是tax_rate、shipping_cost和price。classCreateUserPrices8,:scale=>2t.decimal:tax_rate,:precision=>8,:scale=>2t.decimal:shipping_cost,:precision=>8,:scale=>2endendend起初,我将所有3列的:default=>0放在表格中,但我不想要这样,因为它已经填充了字段,我想使用占位符。这是我的UserPrice模型:classUserPrice回答before_val
我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search
如果您尝试在Ruby中的nil对象上调用方法,则会出现NoMethodError异常并显示消息:"undefinedmethod‘...’fornil:NilClass"然而,有一个tryRails中的方法,如果它被发送到一个nil对象,它只返回nil:require'rubygems'require'active_support/all'nil.try(:nonexisting_method)#noNoMethodErrorexceptionanymore那么try如何在内部工作以防止该异常? 最佳答案 像Ruby中的所有其他对象
由于fast-stemmer的问题,我很难安装我想要的任何rubygem。我把我得到的错误放在下面。Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingfast-stemmer:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcreatingMakefilemake"DESTDIR="cleanmake"DESTDIR=
我有一个这样的哈希数组:[{:foo=>2,:date=>Sat,01Sep2014},{:foo2=>2,:date=>Sat,02Sep2014},{:foo3=>3,:date=>Sat,01Sep2014},{:foo4=>4,:date=>Sat,03Sep2014},{:foo5=>5,:date=>Sat,02Sep2014}]如果:date相同,我想合并哈希值。我对上面数组的期望是:[{:foo=>2,:foo3=>3,:date=>Sat,01Sep2014},{:foo2=>2,:foo5=>5:date=>Sat,02Sep2014},{:foo4=>4,:dat
我正在编写一个方法,它将在一个类中定义一个实例方法;类似于attr_accessor:classFoocustom_method(:foo)end我通过将custom_method函数添加到Module模块并使用define_method定义方法来实现它,效果很好。但我无法弄清楚如何考虑类(class)的可见性属性。例如,在下面的类中classFoocustom_method(:foo)privatecustom_method(:bar)end第一个生成的方法(foo)必须是公共(public)的,第二个(bar)必须是私有(private)的。我怎么做?或者,如何找到调用我的cust
当我尝试安装Ruby时遇到此错误。我试过查看this和this但无济于事➜~brewinstallrubyWarning:YouareusingOSX10.12.Wedonotprovidesupportforthispre-releaseversion.Youmayencounterbuildfailuresorotherbreakages.Pleasecreatepull-requestsinsteadoffilingissues.==>Installingdependenciesforruby:readline,libyaml,makedepend==>Installingrub
如果我使用ruby版本2.5.1和Rails版本2.3.18会怎样?我有基于rails2.3.18和ruby1.9.2p320构建的rails应用程序,我只想升级ruby的版本,而不是rails,这可能吗?我必须面对哪些挑战? 最佳答案 GitHub维护apublicfork它有针对旧Rails版本的分支,有各种变化,它们一直在运行。有一段时间,他们在较新的Ruby版本上运行较旧的Rails版本,而不是最初支持的版本,因此您可能会发现一些关于需要向后移植的有用提示。不过,他们现在已经有几年没有使用2.3了,所以充其量只能让更