2011-07-14 95 views
0

假設,我有一個Android應用程序,與當收到含有一些預先設定的數據(一些代碼或東西)如何開始活動?

對於這項工作的消息提供了一些URL啓動瀏覽器,我的類繼承了BroadcastReceiver類(接收郵件)。 現在只要它收到一個msg,它就需要啓動另一個活動,例如瀏覽器,因此同一個類也需要繼承Activity類。但這是不可能的,一個類不能繼承2個其他類。

我的問題大體類似,

import android.content.broadCastReceiver; 
import android.app.Activity; 

public class sms extends broadCastReceiver{ 

onReceive(){ 

    .... 
    .... 
    here it needs to launch another activity 

    } 
} 

任何人都可以建議我怎麼能實現這個...? 我試圖在裏面創建一個Activity子類的實例並調用startActivity方法,但它不起作用

回答

3

開始活動的方法是aContext.startActivity(new Intent(aContext, MyNewActivity.class));請確保您將正確的聲明放在清單中。

Look here.

對於澄清,您可以使用上下文開始活動。所以只要保持一個短期的參考,你應該沒問題。

編輯:

你需要有一個可用的情況下的參考,甚至創建活動。然後,你的(使用通過參考)以下

Intent i = new Intent(passedContext, MyNewActivity.class); 
i.setFlags(Context.FLAG_ACTIVITY_NEW_TASK); 
passedContext.startActivity(i); 
+0

謝謝呃... !!對於你建議的方法,我不需要繼承Activity類...? – Kishan

+0

@Kishan - Nope。你只需要訪問一個上下文。並將此標誌置於意圖中:FLAG_ACTIVITY_NEW_TASK。 – AedonEtLIRA

+0

它說「aContext無法解決」。我需要導入任何東西嗎?爲了使用這種方法,我不需要ti繼承Activity類嗎? – Kishan

0

在這裏,我可以用推出新的活動,

這裏,上下文被傳遞給廣播接收器的的onReceive方法作爲參數,我可以使用該上下文本身。我無法在這裏使用getBaseContext方法。