Как определить startMode в AndroidManifest.xml – Использование PhoneGap & JQM

Я изо всех сил пытаюсь ограничить свое приложение одним экземпляром. В настоящее время, если пользователь нажимает на главный экран для выхода из приложения, затем делает что-то снаружи и снова нажимает на значок приложения, он запускает второй экземпляр приложения.

Вот мой полный файл манифеста:

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.mydomain.qfa" android:versionCode="4" android:versionName="1.3"> <uses-sdk android:minSdkVersion="7" android:targetSdkVersion="13" android:maxSdkVersion="18" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <application android:debuggable=["false"] android:testOnly=["false"] android:icon="@drawable/icon.png" > <activity android:name="com.mydomain.qfa" android:launchMode=["singleTask"] android:alwaysRetainTaskState="true" android:icon="@drawable/icon.png" > </activity> </application> </manifest> 

Это одно приложение для активности (в основном никаких действий не определено). На главной странице JQM у меня есть что-то вроде этих записей:

 <div data-role="page" id="HomePage"> <div data-theme="d" data-role="header" data-position="fixed" style="padding-bottom: 0px;" data-tap-toggle="false"> <div data-role="navbar"> <div data-role="content" class="MainContent" style="overflow:hidden; padding-top: 0px;"> 

Может кто-нибудь, пожалуйста, скажите, правильно ли мой манифест, и если я буду использовать

 android:name="com.mydomain.qfa" 

Или если это что-то еще похожее

 android:name="com.mydomain.qfa.HomePage"? 

или

 android:name="com.mydomain.qfa.MainContent"? 

Заранее спасибо.

Solutions Collecting From Web of "Как определить startMode в AndroidManifest.xml – Использование PhoneGap & JQM"

Я боролся с этой проблемой в течение 2 дней. Исправление для добавления этого атрибута недавно было добавлено в Кордову по состоянию на 3.5, выпуск CB-6048

Добавить:

 <preference name="AndroidLaunchMode" value="singleTask" /> 

В config.xml

Другие доступные значения:

  • «Стандарт»
  • "SingleTop"
  • "SingleTask"
  • "SingleInstance"

Попробуйте

 <activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale" android:label="@string/app_name" android:launchMode="singleTop" android:name="HomePage" android:theme="@android:style/Theme.DeviceDefault"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> 

Это то, что генерируется с помощью CLI CLM и запускается для singleTop для одиночного экземпляра.

Android: имя должно совпадать с именем основного класса java активности, а не с полным именем пакета. По умолчанию телефонная заставка устанавливает его как имя приложения.

Это то, что в конечном итоге сработало для меня:

Однако фокус в том, что вам нужно изменить в двух местах :

A) MyAppFolder \ platform \ android \ AndroidManifest.xml

 <activity android:alwaysRetainTaskState="true" android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale" android:label="@string/app_name" android:launchMode="singleTask" android:name="AppName" android:theme="@android:style/Theme.Black.NoTitleBar"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> 

B) MyAppFolder \ www \ AndroidManifest.xml

 <activity android:name="AppName" android:launchMode=["singleTask"] android:alwaysRetainTaskState="true" <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> 

Надеюсь, что это помогает кому-то.

попробуй это:

 <gap:config-file platform="android" parent="/manifest/application"> <activity android:launchMode="singleInstance" /> </gap:config-file> 

Но в настройке виджета вашего config это должно быть так (добавьте определение пространства имен android):

 <widget xmlns = "http://www.w3.org/ns/widgets" xmlns:gap = "http://phonegap.com/ns/1.0" xmlns:android = "http://schemas.android.com/apk/res/android" id = "com.wildabeast.app" version = "1.0.0"> .... </widget>