2014-08-28 79 views
0

我有一個服務,它的構造函數接收一個上下文。 我想用方法context.startService(Intent)初始化該服務,傳遞一個Intent作爲參數。 初始化與如何在意圖構造函數上傳遞第二個參數上下文

intent = new Intent(context, GpsService.class) 

意圖,但我需要傳遞上下文到第二個參數,因爲在這一類我需要初始化的LocationManager的語境。

或者你可以初始化的LocationManager沒有上下文,因爲我需要找到位置用的LocationManager

感謝

+0

你需要傳遞上下文到GpsService.class構造函數嗎? – Jamil 2014-08-28 18:38:11

+0

如果我沒有記錯,服務已經訪問上下文 – zozelfelfo 2014-08-28 18:43:40

回答

2
java.lang.Object 
    ↳ android.content.Context 
     ↳ android.content.ContextWrapper 
      ↳ android.app.Service 

爲什麼要將上下文傳遞給服務?該服務也是一個環境!

只需使用this關鍵字,因爲服務將轉換爲上下文!

0

類我需要初始化的LocationManager的語境。

裏面你Service,您可以使用getApplicationContext()這將給你引用了全球範圍內的對象。所以,你不需要傳遞一個Activity的上下文。

+1

按分鐘 – WHDeveloper 2014-08-28 18:45:25

0

由於服務已包含上下文,因此您可以在服務中使用this關鍵字。 這樣的

@Override 
    public void onStart(Intent intent, int startId) { 
     super.onCreate(); 
     // you can use this here as mentioned in the toast 
     Toast.makeText(this,"Monitoring Started", Toast.LENGTH_LONG).show(); 

     //ServiceHandler is the class name of this service 
      SQLiteHelper sqh = new SQLiteHelper(ServiceHandler.this); 
    } 
相關問題