私はサービスを開始するために以下のコードを使用しています。このサービスは、mysqlをチェックして通知を提供する非同期タスクを開始する必要があります。サービスが開始されていないと私はなぜ見つけることができないのですか?私はサービスからログを受け取りません。 (Asyncタスクをメインアクティビティから直接呼び出すと、正常に機能しません)。非同期タスクを使用したサービスが起動していません
主な活動コード:
Intent startIntent = new Intent(MainActivity.this, ForegroundService.class);
MainActivity.this.startService(startIntent);
サービスクラスコード:
public class ForegroundService extends Service {
private static final String LOG_TAG = "ForegroundService";
@Override
public void onCreate() {
Log.i(LOG_TAG, "On Create");
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.i(LOG_TAG, "On Start");
new Thread(new Runnable() {
@Override
public void run() {
String newoperator = "Go";
TimeSync ReportCheck= new TimeSync(getApplicationContext());
ReportCheck.execute(newoperator);
}
}).start();
return START_STICKY;
}
@Override
public void onDestroy() {
super.onDestroy();
Log.i(LOG_TAG, "In onDestroy");
}
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
は、私はまた、主な活動で以下のコマンドを追加し、いくつかの解決策が見つかりましたが、コマンドは私のアンドロイドのスタジオには適用されません。
startIntent.setAction(Constants.ACTION.STARTFOREGROUND_ACTION);
次の点を確認してください。1.サービスはonStartCommandでログがのonCreate 3.ログインが –
パーフェクトを印刷します印刷しますマニフェスト2で宣言されて、私は私ではありませんでした最初、問題を持っていましたmainifestファイルでサービスを宣言します。これは、MainActivityClassでサービスクラスを妨げていたことを示しています。 –
偉大な:)それは助けてうれしい –