2011-07-07 23 views
0

誰能幫幫我?
爲什麼要在Activity的onResume()上創建bindService()?
如何控制bindService()的日期創建?
請幫忙解決下面的查詢。我想bindService()後使用bindService()方法,android服務是NullPointerException

private TestService ts; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     System.out.println("ServiceActivity onCreate()"); 
     bindService(new Intent(this, TestService.class), conn, BIND_AUTO_CREATE); 
     ts.setNum(0);//here is throw nullPointerException 
    } 
private ServiceConnection conn = new ServiceConnection() { 

     @Override 
     public void onServiceDisconnected(ComponentName name) { 

     } 

     @Override 
     public void onServiceConnected(ComponentName name, IBinder service) { 
      ts = ((MyBinder)service).getService(); 
     } 
    }; 

AndroidManifest.xml中

<activity android:name=".ServiceActivity" android:label="ServiceActivity"> 
    <intent-filter> 
    <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
</activity> 
<service android:name="org.caau.android.service.TestService"> 
</service> 

回答

0

我不是這個bindService事情的專家,但我去了Android開發者網站讀一些。

據我所見,你在你的manifest文件中缺少一個服務。 ---來自網站--- 當在清單的標籤中聲明時,可以強制全局訪問服務。通過這樣做,其他應用程序將需要在其自己的清單中聲明相應的元素,以便能夠啓動,停止或綁定到該服務。

此外,通過在執行該調用之前調用checkCallingPermission(String)方法,服務可以通過權限保護單個IPC調用。

有關權限和安全性的更多信息,請參閱安全性和權限文檔。 ---從網站---

因爲我不是很肯定你的代碼的其餘部分,我建議你應該看看Android提供了這裏Local Service Sample

的例子或可調試一些自己。把一些日誌放在onServiceConnected上,有些日誌只是在你做ts.setNum

相關問題