2015-03-22 38 views
5

Tôi đang cố bắt đầu một dịch vụ từ một dịch vụ khác. Nhưng tự hỏi có gì sai. Mã này cũng giống nhưBắt đầu dịch vụ từ một dịch vụ khác

class Service1 extends GCMBaseIntentService { 

    @Override 
    protected void onMessage(Context arg0, Intent intent) { 
     Toast.makeText(getApplicationContext(), "Hello", Toast.LENGTH_LONG).show(); 
     Intent service = new Intent(getApplicationContext(), Service2.class); 
     startService(service); 
    } 
} 

Và Service2 là

class Service2 extends Service { 

    @Override 
    public int onStartCommand(Intent intent, int flags, int startId) { 
     // TODO Auto-generated method stub 
     Toast.makeText(getApplicationContext(), "Service Started", Toast.LENGTH_LONG).show(); 
    } 
} 

Tôi nhận được Toast "Hello" trong Service1 nhưng không Toast bị "Dịch vụ đầu" từ Service2

+0

Hãy thử 'Service1.this' hoặc' getBaseContext() 'thay vì' getApplicationContext() 'để bắt đầu Service1 – Apurva

+0

Bạn có gặp phải lỗi nào không? – Keshav1234

+0

Tôi đã thử nhiều khả năng bao gồm điều này nhưng không có gì đã làm việc –

Trả lời

12

Thay vì sử dụng getApplicationContext() bạn nên sử dụng Service1.this hoặc getBaseContext(). Bạn đã khai báo Service2 của mình trong AndroidManifest chưa?

+10

Ohhhh .... Các Manifest ... Tôi nên tát bản thân mình một lần hunderd cho điều này ... Dù sao, cảm ơn rất nhiều :) –

+0

Không phải lo lắng! Tôi nghĩ tất cả chúng ta đều biết những tình huống này quá tốt;) –

Các vấn đề liên quan