Принудительное закрытие в фоновом режиме в приложении для Android - PullRequest
1 голос
/ 12 января 2012

Привет. Я создал приложение фоновой службы после этого урока http://androidsourcecode.blogspot.com/2010/10/basic-android-background-service.html. Но у меня есть ошибка в файле манифеста.

Сообщение об ошибке

The element type "category" must be terminated by the matching end-tag "</category>".

Я не знаю, как создать фоновый сервис Android. Любое руководство по этому вопросу приветствуется.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
 package="com.javaorigin.android.sample.service" android:versionCode="1"
 android:versionName="1.0">
  <application icon="@drawable/icon" label="@string/app_name">
   <service class=".MyService" name=".MyService">
     <intent-filter>
       <action android:value="com.javaorigin.android.sample.service.MY_SERVICE"
               android:name=".MyService" />

       </intent-filter>
   </service>
  <activity android:name=".SampleAction"
             android:label="@string/app_name">
       <intent-filter>
           <action name="android.intent.action.MAIN">
           <category name="android.intent.category.LAUNCHER">
       </intent-filter>
   </activity>

Ответы [ 3 ]

1 голос
/ 12 января 2012

В вашем файле манифеста нет больших проблем.Этот учебник кажется старым, и вам нужно сделать несколько изменений, чтобы избавиться от ошибок.Подобно косой черте в конце действия и тега категории, вместо имени атрибута используйте android: name, переместите использование-sdk перед тегом приложения (где Lint предпочитает это).Вот и все!

Попробуйте:

 <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.javaorigin.android.sample.service" android:versionCode="1"
   android:versionName="1.0">
   <uses-sdk minsdkversion="8"/>
   <application icon="@drawable/icon" label="@string/app_name">
       <service class=".MyService" android:name=".MyService">
         <intent-filter>
           <action android:value="com.javaorigin.android.sample.service.MY_SERVICE"
                   android:name=".MyService" />

           </intent-filter>
       </service>
      <activity android:name=".SampleAction"
                 android:label="@string/app_name">
           <intent-filter>
               <action android:name="android.intent.action.MAIN"/>
               <category android:name="android.intent.category.LAUNCHER"/>
           </intent-filter>
       </activity>

   </application>
</manifest>
0 голосов
/ 12 января 2012

Скопируйте и вставьте это в свой манифест:

  <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.javaorigin.android.sample.service" android:versionCode="1"
     android:versionName="1.0">
      <application icon="@drawable/icon" label="@string/app_name">
       <service class=".MyService" name=".MyService">
         <intent-filter>
           <action android:value="com.javaorigin.android.sample.service.MY_SERVICE"
                   android:name=".MyService" />

           </intent-filter>
       </service>
      <activity android:name=".SampleAction"
                 android:label="@string/app_name">
           <intent-filter>
               <action name="android.intent.action.MAIN"/>
               <category name="android.intent.category.LAUNCHER"/>
           </intent-filter>
       </activity>
     </application>
    </manifest>
0 голосов
/ 12 января 2012

Это не относится к элементу Service. Ваш XML поврежден; любые теги, которые не содержат вложенных элементов, должны заканчиваться на одной строке косой чертой. Вот исправленный блок:

<activity android:name=".SampleAction"
         android:label="@string/app_name">
   <intent-filter>
       <action name="android.intent.action.MAIN" />
       <category name="android.intent.category.LAUNCHER" />
   </intent-filter>
 </activity>

Обратите внимание на косые черты после MAIN и LAUNCHER. Без них парсер думает, что вы оставляете тег открытым, чтобы вкладывать в него дочерние элементы.

...