2014-11-04 3 views
0

Я реализую простое приложение, выполняющее фоновое обслуживание, я не могу запустить службу, следующим является мой манифест & Код, класс обслуживания правильно разрешен (чтение ресурсов), наследуется от IntentService (и внедрение методов req) не решает проблему как-то ...Android, Фоновая служба не запускается

Почему служба фона не запускается?
любая помощь будет оценена по достоинству.

Manifest:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.newcomp.vagent" 
    android:versionCode="1" 
    android:versionName="1.0" 
    android:permission="android.permission.RECEIVE_BOOT_COMPLETED" > 

<uses-sdk 
    android:minSdkVersion="16" 
    android:targetSdkVersion="20" /> 

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <receiver android:name="com.newcomp.Infrastructure.BootStarter" > 
     <intent-filter> 
      <action android:name="android.intent.action.BOOT_COMPLETED" /> 
     </intent-filter> 
    </receiver> 
    <activity android:name=".MainActivity"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <service 
     android:name=".CaptureService" 
     android:exported="true" 
     android:process=":captureService" > 
    </service> 
</application> 

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.USE_CREDENTIALS" /> 
<uses-permission android:name="android.permission.READ_PROFILE" /> 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

</manifest> 

код услуги:

package com.newcomp.vagent; 

import android.app.IntentService; 
import android.app.Service; 
import android.content.Intent; 
import android.R.*; 
import android.os.IBinder; 

import java.io.IOException; 

import fi.iki.elonen.NanoHTTPD; 

    public class CaptureService extends Service { 
    public CaptureService() { 
     //super("Capture Service"); 
    } 

    @Override 
    public int onStartCommand(Intent intent, int flags, int startId) { 
     return Service.START_NOT_STICKY; 
    } 

    @Override 
    public IBinder onBind(Intent intent) { 
     return null; 
    } 

    @Override 
    public void onCreate() { 
     super.onCreate(); 
    } 
} 

код активность: пакет com.newcomp.vagent;

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.widget.Toast; 

public class MainActivity extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     final String strSvcName = getResources().getString(R.string.startup_service); 
     //setContentView(R.layout.main); 
     Toast.makeText(getBaseContext(), String.format("Hello from '%s'", strSvcName), Toast.LENGTH_LONG).show(); 
     Class cls = null; 
     try { 
      cls = getClassLoader().loadClass(strSvcName); 
      startService(new Intent(this, cls));// Starts the service 
     } catch (ClassNotFoundException e) { 
      e.printStackTrace(); 
     } 

     //finish(); 
    } 
} 
+0

Какая ошибка вы получаете? –

+0

Никакой специальной ошибки, startService не вызывает никаких исключений, Logcat говорит «348-763/system_process I/ActivityManager: Запустить proc com.newcomp.vagent: captureService для службы com.newcomp.vagent/.CaptureService: pid = 1773 uid = 10074 gids = {50074, 9997, 3003, 1028, 1015} ... ", которые указывают, что служба IS запущена ... хотя точки останова не достигнуты ... – NadavRub

+0

О, хорошо. Ну, я замечаю несколько вещей, которые могут указать вам в правильном направлении (надеюсь), ваша служба не наследуется от IntentService, а из обычного класса обслуживания. И ваш стартовый код службы очень сложный, почему бы не просто startService (новый Intent (это, CaptureService.class)); –

ответ

0

Проблема была простой, сервис был на самом деле, начиная, но так как андроида: процесс = «: captureService» было указано, что начинало на отдельный процесс, который не подключен отладчик, либо specifcally подключение к сервису, ИЛИ, опустив android: process = ": captureService" решить проблему.

Смежные вопросы