0
我想製作一個顯示Flash消息的應用程序。我正在收聽android.provider.Telephony.SMS_RECEIVED
。當onReceive()調用我開始一個活動。 第一次當onReceive()被調用時它開始活動,但下次不會。這裏是我的代碼無法從廣播接收器多次打開活動
public class MyReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context arg0, Intent arg1) {
this.abortBroadcast();
Intent intent = new Intent(arg0,Start.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
arg0.startActivity(intent);
}
}
我中止廣播,所以消息不會在收件箱中。
即使更改清單文件中的啓動模式,啓動活動的意圖中的啓動模式設置也將優先。 – vinoth
這可能是一個問題。如果您從活動外部啓動新活動,則應使用FLAG_ACTIVITY_NEW_TASK,但它與launchMode =「singleTask」相同。在這種情況下。新的活動不會被啓動。它可以是2個選項來解決這個問題:1 - 使用activity.onNewIntent或2 - 在你的接收器中獲取上一次開始的活動(使用Application.ActivityLifecycleCallbacks)並從中獲得新的活動。 – akelix
@vinoth是對的。那麼這是什麼解決方案呢? –