Вопрос по android – импорт Android помощи

4

Я пытаюсь импортировать android.content.Context в файл AIDL, но eclipse не распознает его.

вот мой код:

package nsip.net;

import android.content.Context; // error couldn't find import for class ...

interface IMyContactsService{

void printToast(Context context, String text);

}

Может кто-нибудь мне помочь?

Ваш Ответ

1   ответ
7

С помощьюandroid.content.Context не будет работать, так как не реализуетandroid.os.Parcelable.

Однако - если у вас есть класс (MyExampleParcelable например), который вы хотите передать в интерфейсе AIDL (& amp;Parcelable) вы создаете.aidl файл,MyExampleParcelable.aidl в котором вы пишете:

package the.package.where.the.class.is;

parcelable MyExampleParcelable;


Теперь, если вы отчаянно не хотите общаться между процессами, вы должны рассмотреть местные службы.

Edit(немного более полезно):

Этоlocal service (т.е. он будет использоваться только внутри вашего собственного приложения и процесса)? В этих случаях обычно просто лучше внедрить связующее и вернуть его напрямую.

public class SomeService extends Service {
    ....
    ....
    public class SomeServiceBinder extends Binder {
        public SomeService getSomeService() {
            return SomeService.this;
        }
    }

    private final IBinder mBinder = new SomeServiceBinder();

    @Override
    public IBinder onBind(Intent intent) {
        return mBinder;
    }

    public void printToast(Context context, String text) {
        // Why are you even passing Context here? A Service can create Toasts by it self.
        ....
        ....
    }
    // And all other methods you want the caller to be able to invoke on
    // your service.
}

В основном, когдаActivity привязал к вашему сервису, он просто разыгрываетIBinder вSomeService.SomeServiceBinder, вызовSomeService.SomeServiceBinder#getSomeService() - а такжеbang, доступ к бегуService экземпляр + вы можете вызвать вещи в его API.

Error: User Rate Limit ExceededAnd ,it works!Error: User Rate Limit Exceeded
Error: User Rate Limit Exceededinterface Event should be declared in a file called com/zkteco/android/core/Event.aidlError: User Rate Limit Exceeded
Error: User Rate Limit Exceededandroid.graphics.PointError: User Rate Limit Exceeded"Point"Error: User Rate Limit ExceededPoint.aidlError: User Rate Limit Exceeded
Error: User Rate Limit ExceededcomplainedError: User Rate Limit Exceeded

Похожие вопросы