簡體   English   中英

Android簡單服務無法啟動

[英]Android simple service not starting

我的問題是在問題標題中,我試圖僅通過登錄就啟動/綁定一個簡單的服務,但它根本無法正常工作。 我想用Service Connexion方法做到這一點:

public class testServiceBound extends Service {
    /**
     * PRIVATE ATTRIBUTES
     */
    // log
    private static final String TAG     = testServiceBound.class.getSimpleName();
    private final Binder        _binder = new testBinder();

    @Override
    public void onCreate() {

        Log.i(TAG, "onCreate--");
        super.onCreate();
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {

        Log.i(TAG, "onStartCommand--");
        return START_STICKY;
    }

    @Override
    public void onDestroy() {

        Log.i(TAG, "onDestroy--");
        super.onDestroy();
    }

    @Override
    public IBinder onBind(Intent intent) {

        Log.i(TAG, "onBind--");
        return _binder;
    }

    public class testBinder extends Binder {
        public testServiceBound getServiceInstance() {

            Log.i(TAG, "PlayerBinder--getServiceInstance--");
            return testServiceBound.this;
            }        
    }
}

在活動中:

private testServiceBound        _testService;

public final ServiceConnection  _connectionStreamingtest    = new ServiceConnection() {
                                                                @Override
                                                                public void onServiceConnected(ComponentName className, IBinder testBinder) {

                                                                    Log.i(TAG, "onServiceConnected--");
                                                                    // service
                                                                    testBinder binder = (testBinder) testBinder;
                                                                    _testService = binder.getServiceInstance();
                                                                }

                                                                @Override
                                                                public void onServiceDisconnected(ComponentName arg0) {

                                                                    Log.i(TAG, "onServiceDisconnected--");
                                                                    _bound = false;
                                                                }
                                                            };
public void bindToService() {

    Log.i(TAG, "bindToService--");
    Intent intenttest = new Intent(MainActivity.this, testServiceBound.class);
    startService(intenttest);
}

@Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Log.i(TAG, "onCreate--");
    //
    // service
    bindToService();
}

在清單中:

<service
    android:name="com.egdigital.testing.service.testServiceBound"
    android:enabled="true"
    android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE" >
</service>

我也嘗試過

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

沒有錯誤,沒有日志,什么都沒有發生。

您正在顯式啟動服務,但未綁定。 因此,您的服務連接代碼將不會觸發。

請嘗試以下代碼:

Intent intenttest = new Intent(MainActivity.this, testServiceBound.class);
bindService(intenttest , _connectionStreamingtest   , Context.BIND_AUTO_CREATE);

好吧,至少我發現了! 感謝您的所有評論和答案=)

<service
    android:name="com.egdigital.testing.service.testServiceBound"
    android:enabled="true"
    android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE" >
</service>

這不在應用程序標記中! 當然需要在那兒(1天找到它。。。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM