2016-05-05 10 views
0

MainActivityでは、サービスのサブクラスを作成しました。サービスが開始されていない、私はかなり確信しているので、マニフェストファイルです。私はいくつかの方法を試しましたが、うまくいきません。アイデアはありますか?Android:サービスをサブクラスとして起動するには?

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); 

    } 
} 

マニフェスト

<?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> 

答えて

1

あなたはあなたのマニフェストにアクティビティタグの外にサービスを登録してみました:あなたの具体的な実装で

<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

あなたが公共のIntentService(文字列名)を呼び出し、デフォルトコンストラクタを宣言する必要が抽象IntentServiceクラスのスーパーコンストラクタあなたが拡張します:

public MyService() { 
    super("YourService"); 
} 
関連する問題