我正在使用TItanium SDK 3.1.3并且我的项目是在Alloy 1.0中制作的,过去曾报告过我遇到的问题,但即使我尝试使用推荐的修复程序,它也只是赢了'工作。 到目前为止,我已经看过this和this票证,使用属性
<property name="ti.android.root.reappears.restart" type="bool">true</property>
和属性
android:alwaysRetainTaskState="true"
我的tiapp.xml上的似乎根本不起作用。 这是我的tiapp.xml:
<?xml version="1.0" encoding="UTF-8"?>
<ti:app xmlns:ti="http://ti.appcelerator.org">
<id>com.nenvo.inTeamAlloy</id>
<name>inTeamAlloy</name>
<version>1.0</version>
<publisher></publisher>
<url>http://nenvo.com</url>
<description>not specified</description>
<copyright></copyright>
<icon>appicon.png</icon>
<persistent-wifi>false</persistent-wifi>
<prerendered-icon>false</prerendered-icon>
<statusbar-style>default</statusbar-style>
<statusbar-hidden>false</statusbar-hidden>
<fullscreen>false</fullscreen>
<navbar-hidden>true</navbar-hidden>
<analytics>true</analytics>
<guid>c0d02147-bb42-4e9c-b29d-8c4686269836</guid>
<property name="ti.ui.defaultunit" type="string">system</property>
<property name="ti.android.threadstacksize" type="int">81920</property>
<property name="ti.android.bug2373.finishfalseroot" type="bool">true</property>
<!-- <property name="ti.android.root.reappears.restart" type="bool">true</property> -->
<property name="ti.android.root.reappears.restart" type="bool">true</property>
<iphone>
<orientations device="iphone">
<orientation>Ti.UI.PORTRAIT</orientation>
</orientations>
<orientations device="ipad">
<orientation>Ti.UI.PORTRAIT</orientation>
<orientation>Ti.UI.UPSIDE_PORTRAIT</orientation>
<orientation>Ti.UI.LANDSCAPE_LEFT</orientation>
<orientation>Ti.UI.LANDSCAPE_RIGHT</orientation>
</orientations>
</iphone>
<android xmlns:android="http://schemas.android.com/apk/res/android">
<tool-api-level>17</tool-api-level>
<manifest android:installLocation="auto" >
<uses-sdk android:minSdkVersion="10" android:targetSdkVersion="17"/>
<application android:largeHeap="true" android:hardwareAccelerated="true" android:theme="@style/Theme.MyTheme">
<!-- TI_APPLICATION -->
<activity android:name=".InteamalloyActivity"
android:screenOrientation="portrait"
android:alwaysRetainTaskState="true"
android:label="inTeamAlloy" android:theme="@style/Theme.Titanium"
android:configChanges="keyboardHidden"><!-- android:theme="@style/Theme.Titanium" -->
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="ti.modules.titanium.media.TiCameraActivity"
android:screenOrientation="portrait"
android:configChanges="keyboardHidden"
android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"
/>
<activity android:name="org.appcelerator.titanium.TiActivity"
android:screenOrientation="portrait"
android:configChanges="keyboardHidden" />
<activity android:name="org.appcelerator.titanium.TiTranslucentActivity"
android:screenOrientation="portrait"
android:configChanges="keyboardHidden"
android:theme="@android:style/Theme.Translucent" />
<activity android:name="ti.modules.titanium.ui.android.TiPreferencesActivity"
android:screenOrientation="portrait"
android:configChanges="keyboardHidden"/>
</application>
</manifest>
</android>
<mobileweb>
<precache/>
<splash>
<enabled>true</enabled>
<inline-css-images>true</inline-css-images>
</splash>
<theme>default</theme>
</mobileweb>
<modules>
<module platform="android" version="2.3.2">ti.urbanairship</module>
<module platform="android" version="0.1">net.iamyellow.tiws</module>
</modules>
<deployment-targets>
<target device="android">true</target>
<target device="blackberry">false</target>
<target device="ipad">false</target>
<target device="iphone">true</target>
<target device="mobileweb">false</target>
<target device="tizen">false</target>
</deployment-targets>
<sdk-version>3.1.3.GA</sdk-version>
<plugins>
<plugin version="1.0">ti.alloy</plugin>
</plugins>
<property name="ti.deploytype">development</property>
</ti:app>
在这件事上我有什么选择? Alloy项目是否有解决方法?
答案 0 :(得分:0)
在挖掘Android Activity documentation后,我在根Activity中尝试了另一个属性:
<activity android:name=".InteamalloyActivity"
android:screenOrientation="portrait"
android:clearTaskOnLaunch="true" <!-- This property -->
android:label="inTeamAlloy"
android:theme="@style/Theme.Titanium"
android:configChanges="keyboardHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
使用 clearTaskOnLaunch 属性,根据文档:
是否将从任务中删除所有活动,除外 对于根活动,无论何时从主屏幕重新启动 - 如果任务总是被剥离到其根活动,则为“true” 如果不是“假”。默认值为“false”。这个属性是 仅对启动新任务的活动有意义(根 活动);它被任务中的所有其他活动忽略。当。。。的时候 值为“true”,每次用户再次启动任务时,它们都是 无论他们上次做什么,都会带来根本活动 在任务中,无论他们是否使用Back或Home 按钮离开它。当值为“false”时,可以清除任务 某些情况下的活动(请参阅alwaysRetainTaskState 属性),但并非总是如此。
例如,假设有人从家中启动活动P. 屏幕,从那里去活动Q.用户接下来按Home, 然后返回活动P.通常,用户会看到活动 问:因为这是他们上次在P的任务中做的事情。但是,如果P 将此标志设置为“true”,将所有活动设置在其上(Q在此 当用户按下Home并且任务转到了 背景。因此用户在返回任务时只看到P.
如果此属性和allowTaskReparenting都是“true”,则为any 可以重新制作父母的活动将移动到他们共享的任务中 亲和力;如上所述,其余的活动随后被删除 上方。
这样,当根活动是将应用程序发送到后台时处于活动状态的活动时,应用程序将在与根活动相关的任务被操作系统终止后重新启动。虽然这不是应用程序中的最佳和最期望的行为,但它确实是使用Titanium时的方法。