2014-04-25 59 views
1

我開發了一個給出BroadcastReceiver消息的應用程序。爲什麼我的應用程序在模擬器上正確運行,但在手機上失敗?

的代碼是

package com.example.myapp; 

import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.Intent; 
import android.widget.Toast; 

public class Receiver extends BroadcastReceiver { 
    public static final String TAG = "Receiver Tutorial"; 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     String action = intent.getAction(); 
     if (action != null && Intent.ACTION_SCREEN_ON.equals(action)) { 
      Toast.makeText(context, "Screen is turned ON", Toast.LENGTH_LONG).show(); 
     } 
    } 
} 

應用程序是在模擬器運行正常,並給予Toast通知。 但是,當我試圖在我的手機上運行它時,它不會提供任何吐司通知。 我正在使用Galaxy Y Duos手機。 我無法弄清楚問題所在。

回答

0

在可以顯示吐司之前,BroadcastReceiver被終止。由於接收者的過程死亡,敬酒永遠不會出現。要顯示敬酒,您需要啓動Service以確保在BroadcastReceiver的代碼完成後仍然會有一個應用程序來進行敬酒。

查看BroadcastReceiver JavaDoc中標有「接收器生命週期」的部分。

+0

如果你有時間,你能稍微解釋一下嗎? –

相關問題