2012-02-13 32 views
-1

我有一個接收SMS的活動,我希望在發生這種情況時將它帶到前臺。不管它是相同的實例還是新的實例。我試過了我在這個網站上發現的所有內容,甚至像FLAG_ACTIVITY_NEW_TASK這樣的其他標誌也能正常工作,但是[迄今]沒有任何活動將它帶到前臺。如何將活動帶到前臺? BroadcastReceiver內部沒有任何工作

public class SMSMessenger extends Activity { 
    private static final String ACTION = "android.provider.Telephony.SMS_RECEIVED"; 
    private BroadcastReceiver yourReceiver; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     final IntentFilter theFilter = new IntentFilter(); 
     theFilter.addAction(ACTION); 

     this.yourReceiver = new BroadcastReceiver() { 

      @Override 
      public void onReceive(Context context, Intent intent) { 

       // Bring activity to the foreground - doesn't work 
       Intent I = new Intent(context, SMSMessenger.class); 
       I.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); 
       context.startActivity(I); 
       //------------------------------------------------ 
      } 
     }; 
     this.registerReceiver(this.yourReceiver, theFilter); 
    } 
} 

回答

0

我相信你在找什麼。創建您的接收器作爲一個單獨的文件(MyBroadcastReceiver.java),並讓它啓動活動或彈出通知或任何。在您的AndroidManifest嘗試把這樣的:

<receiver android:name=".MyBroadcastReceiver"> 
    <intent-filter> 
     <action android:name= 
      "android.provider.Telephony.SMS_RECEIVED" /> 
    </intent-filter> 
</receiver> 

另外,還要確保你包括SMS許可,您AndroidManifest:

<uses-permission android:name="android.permission.RECEIVE_SMS" /> 
+0

我試過了,如果通過彈出窗口,你的意思是吐司,它可以正常工作。但我想要的是我的活動打開/恢復。 – user1204946 2012-02-13 06:54:18

+0

我實際上是指通知。請參閱:http://developer.android.com/guide/topics/ui/notifiers/notifications.html – Bill 2012-02-13 15:40:18

+0

自從我與廣播接收機合作以來,已經有一段時間了,我記得現在你不能綁定到服務/啓動一個活動。 用您想要啓動的活動的未決意圖創建通知。 – Bill 2012-02-14 16:46:29

0

試試這個..

myManager  = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); 
    myNotification = new Notification(R.drawable.alert1, "ALERT...!!", System.currentTimeMillis()); 
    myIntent  = new Intent(context, SmsMessanger.class); 
    myPendingIntent = PendingIntent.getActivity(context, 0, myIntent, 0); 
    myNotification.setLatestEventInfo(context, "NEW SMS ALERT...!!", "You have a new SMS alert..!! Click here to stop the alert tone...!!", myPendingIntent); 
    myManager.notify(0, myNotification); 

它爲我工作。 。!

當我們點擊通知時,活動被提前到了。

相關問題