Binden an Remote Service funktioniert nicht / .asInterface gibt NULL zurück

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Binden an Remote Service funktioniert nicht / .asInterface gibt NULL zurück

    Ich habe analog zu dem Beispiel in dem buch Android 2 von Arno Becker (androidbuch.de/) mir einen Remote Service erstellt:

    Quellcode

    1. public class TuCanMobileActivity extends Activity {
    2. /** Called when the activity is first created. */
    3. //private HTTPSbrowser mBrowserService;
    4. private HTTPBrowserRemote mBrowserRemoteService;
    5. private Boolean mbound=false;
    6. private ServiceConnection mBrowserRemoteServiceConnection =
    7. new ServiceConnection() {
    8. @Override
    9. public void onServiceDisconnected(ComponentName name) {
    10. try {
    11. mBrowserRemoteService.unregister_course_callback(courseCallback);
    12. } catch (RemoteException e) {}
    13. }
    14. @Override
    15. public void onServiceConnected(ComponentName name, IBinder service) {
    16. mBrowserRemoteService=HTTPBrowserRemote.Stub.asInterface(service);
    17. mbound=true;
    18. try {
    19. mBrowserRemoteService.register_course_callback(courseCallback);
    20. }
    21. catch (RemoteException e) {
    22. // TODO: handle exception
    23. }
    24. }
    25. };
    26. private final IClassesCallback courseCallback =
    27. new IClassesCallback.Stub() {
    28. @Override
    29. public void expressClassesdata(HTTPSResponse ClassesResponse)
    30. throws RemoteException {
    31. Toast.makeText(TuCanMobileActivity.this, "Just works??", Toast.LENGTH_SHORT).show();
    32. final TextView txtLoginName =
    33. (TextView) findViewById(R.id.textView1);
    34. txtLoginName.setText(ClassesResponse.HTMLResponse);
    35. }
    36. };
    37. @Override
    38. public void onCreate(Bundle savedInstanceState) {
    39. super.onCreate(savedInstanceState);
    40. setContentView(R.layout.main);
    41. }
    42. public void onClickSendLogin (final View sfNormal) {
    43. final Intent browserIntent = new Intent(TuCanMobileActivity.this,HTTPBrowserRemoteImpl.class);
    44. this.bindService(browserIntent, mBrowserRemoteServiceConnection, Context.BIND_AUTO_CREATE);
    45. if(mbound==true){
    46. Toast.makeText(TuCanMobileActivity.this, "Service Bound", Toast.LENGTH_SHORT).show();
    47. }
    48. else {
    49. Toast.makeText(TuCanMobileActivity.this, "Service NOT Bound", Toast.LENGTH_SHORT).show();
    50. }
    51. try {
    52. mBrowserRemoteService.call_course_overview();
    53. } catch (RemoteException e) {
    54. // TODO Auto-generated catch block
    55. e.printStackTrace();
    56. }
    57. /*final Intent i = new Intent(this,MainMenu.class);
    58. startActivity(i);*/
    59. unbindService(mBrowserRemoteServiceConnection);
    60. }
    61. }
    Alles anzeigen


    Jedoch ist in der onClickSendLogin methode mBrowserRemoteService immer gleich NULL und gibt somit eine NullPointerException zurück. Ich kapiere nur nicht warum? Wie kann ich dem Abhilfe leisten?


    Danke im Vorraus:
    Tyde