簡體   English   中英

Android:未在Activity上下文外部通過startActivity()傳遞Intent Extras

[英]Android: Intent Extras not passed with startActivity() outside Activity context

我有一個類,它偵聽SMS廣播,然后在同一應用程序中打開一個活動以顯示消息。 這是一個較大項目的一部分。

由於廣播類不會擴展活動類,因此有意圖地調用活動需要我用Intent.FLAG_ACTIVITY_NEW_TASK對其進行Intent.FLAG_ACTIVITY_NEW_TASK

現在,Intent有一個額外的(SMS消息和一些參數作為單個字符串),我想與該Intent發送。 一切都進行得很好,但沒有隨心所欲地發送附加服務。

這是我的廣播課代碼

//After getting the message into String S and doing some process
Intent inte = new Intent(context.getApplicationContext(), StartApp.class);
inte.putExtra("messageAsString", S.toString()); //Where S is declared somewhere
inte.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(inte);

從活動中接收onCreate()方法中的Intent

if(getIntent().hasExtra("messageAsString")) {
        String message = getIntent().getStringExtra("messageAsString").toString();
        Toast toast = Toast.makeText(this, "Received SMS: " + message , Toast.LENGTH_LONG);
        toast.show();
}

該應用程序可能已經運行,已按下主頁按鈕。 無論哪種方式,我想要實現的是當注冊接收者收到消息時,我想自動開始一個活動並將消息及其元數據傳遞給它。

我知道我在某處缺少東西,但會感謝您的迅速幫助

您還需要處理onNewIntent() ,如果活動已經存在並且startActivity()將現有實例帶回前台,則可以調用onNewIntent() 您的多余物品可能在那里。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM