Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android AIDL启动进程不工作_Java_Android_Web Services_Aidl - Fatal编程技术网

Java Android AIDL启动进程不工作

Java Android AIDL启动进程不工作,java,android,web-services,aidl,Java,Android,Web Services,Aidl,我有一个活动,我在后台调用服务,我对AIDL很陌生 我的代码如下: 关于活动的信息 //declaration private Intent mIntentInvenueService; private IInvenueService mIInvenueService; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mIntentInvenueSer

我有一个活动,我在后台调用服务,我对AIDL很陌生

我的代码如下:

关于活动的信息

//declaration
private Intent mIntentInvenueService;
private IInvenueService mIInvenueService;

protected void onCreate(Bundle savedInstanceState) {   
    super.onCreate(savedInstanceState);
mIntentInvenueService = new Intent(this, InvenueService.class);
    startService(mIntentInvenueService);
}
private final ServiceConnection mServiceConnection = new ServiceConnection() { 
    @Override
    public void onServiceConnected(ComponentName name, IBinder service) { 
        mIInvenueService = IInvenueService.Stub.asInterface(service);
        try {
            mIInvenueService.registerCallback(mCallback);
        } catch (RemoteException e) {
            e.printStackTrace();
        }
    }

    @Override
    public void onServiceDisconnected(ComponentName name) { 
        mIInvenueService = null;
        try {
            mIInvenueService.unregisterCallback(mCallback);
        } catch (RemoteException e) {
            e.printStackTrace();
        }
    }
};

private final IInvenueServiceCallback.Stub mCallback = new IInvenueServiceCallback.Stub() {
    @Override
    public void onReceiveResponse() throws RemoteException {
        runOnUiThread(new Runnable() {
            public void run() {
                if (flagChanged){

                }
                else
                {
                    cAdapter.notifyDataSetChanged();
                }

            }
        });
    }
};
    public void onResume() {
    super.onResume();
    bindService(mIntentInvenueService, mServiceConnection, BIND_AUTO_CREATE);
}

@Override
public void onDestroy() {  
    super.onDestroy();
    unbindService(mServiceConnection);
    unregisterReceiver(mBroadcastReceiver);
}
关于我的服务:

private final RemoteCallbackList<IInvenueServiceCallback> mCallbacks = new RemoteCallbackList<IInvenueServiceCallback>();
private boolean isUpdated = false;
@Override
public IBinder onBind(Intent intent) {
    return mBinder;
}

private final IInvenueService.Stub mBinder = new IInvenueService.Stub() {
    @Override
    public void startProcess() throws RemoteException {
        Timer timer = new Timer();
        timer.schedule(new TimerTask() {
            public void run() { 
               Toast.makeText(......).show()// Toast Here
            }
        }, 60000, 60000);
    }



    @Override
    public void unregisterCallback(IInvenueServiceCallback callback)
            throws RemoteException {
        mCallbacks.unregister(callback);
    }

    @Override
    public void registerCallback(IInvenueServiceCallback callback)
            throws RemoteException {
        mCallbacks.register(callback);

    }

};
interface IInvenueService {
void startProcess();
void registerCallback(IInvenueServiceCallback callback);
void unregisterCallback(IInvenueServiceCallback callback);
 }
我的问题是为什么祝酒词没有出现?我是否遗漏了启动流程不起作用的内容


有什么帮助吗?

您应该显示来自UIThread的祝酒词,使用
TimerTask
将使其在单独的线程上运行


尝试将带有
Toast
的runnable发布到处理程序。

实际上,我必须为此调用Asynctask,主要问题是没有调用StartProcess,因为计时器从未调用。在活动中调用StartProcess的位置在哪里?先生,我该怎么做?这就是我缺少的吗?明白了我忘记调用方法了