2016-05-05 15 views
0

In der MainActivity habe ich eine Unterklasse für einen Service erstellt. Der Dienst startet nicht, ich bin mir ziemlich sicher, weil die Manifest-Datei. Ich habe verschiedene Wege versucht, aber es funktioniert nicht. Hast du irgendwelche Ideen?Android: Service als Unterklasse Wie fange ich an?

MainActivity

public class MainActivity extends AppCompatActivity { 

private EditText editTextUsername; 
private SharedPreferences savepoint; 
private SharedPreferences.Editor editor; 
private String sUsername; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    /** 
    * Speicher und Savepoint username initialisieren 
    */ 
    savepoint = getSharedPreferences("Data", Context.MODE_PRIVATE); 
    editor = savepoint.edit(); 

    /** 
    * Username einrichten 
    */ 
    editTextUsername = (EditText) findViewById(R.id.editTextUsername); 
    editTextUsername.setText(savepoint.getString("username","Username")); 
    sUsername = editTextUsername.getText().toString(); 

    /** 
    * Position laden und hochladen 
    */ 
    Intent locationService2 = new Intent(MainActivity.this, LocationService2.class); 
    startService(locationService2); 
} 

public class LocationService2 extends IntentService { 

    public LocationService2() { 
     super("My Thread"); 
    } 

    @Override 
    protected void onHandleIntent(Intent intent) { 

     new Location2(MainActivity.this, sUsername); 

    } 
} 

Manifest

<?xml version="1.0" encoding="utf-8"?> 

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
<uses-permission android:name="android.permission.INTERNET" /> 

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme"> 

    <activity 
     android:name=".MainActivity" 
     android:label="@string/app_name"> 
     <service android:enabled="true" android:name="ch.web2page.stefano.trackme.MainActivity.LocationService2" /> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 

    </activity> 

</application> 

Antwort

1

Haben Sie versucht, mit Service außerhalb Aktivitäts-Tag in Ihrem Manifest Registrierung:

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

    </activity> 

<service android:enabled="true" android:name="ch.web2page.stefano.trackme.MainActivity.LocationService2" /> 
0

In Ihrem konkreten Implementierung Sie einen Standard-Konstruktor zu deklarieren haben, die die Öffentlichkeit IntentService (String name) Super-Konstruktor der abstrakten IntentService Klasse ruft Sie erweitern :

public MyService() { 
    super("YourService"); 
} 
Verwandte Themen