0

以下のコードを使用してサービスを開始しています。このサービスは、mysql をチェックして通知を提供する非同期タスクを開始する必要があります。サービスが開始されていませんが、その理由がわかりません。サービスからログを受信しません。(サービスなしでメインアクティビティから非同期タスクを直接呼び出すと、正常に動作します)。

メイン アクティビティ コード:

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

また、メイン アクティビティに以下のコマンドを追加するいくつかのソリューションを見つけましたが、このコマンドは私の Android スタジオでは適用できません。

startIntent.setAction(Constants.ACTION.STARTFOREGROUND_ACTION);
4

1 に答える 1

1

どのバージョンの android studio を使用していますか? 最新バージョンにアップデートしてみましたか?

Android Studio 2.1 をダウンロード

于 2016-05-29T10:10:15.753 に答える