2013-02-27 102 views

回答

1

使用以下代碼在應用程序未運行時打開活動。

Intent myIntent = new Intent(context.getApplicationContext(), YourClassActivity.class); 
Bundle bundle = new Bundle(); 
myIntent.putExtras(bundle); 
myIntent.addFlags(
     Intent.FLAG_ACTIVITY_NEW_TASK 
    | Intent.FLAG_ACTIVITY_CLEAR_TOP 
    | Intent.FLAG_ACTIVITY_SINGLE_TOP); 
context.getApplicationContext().startActivity(myIntent); 

你可以傳遞任何數據包裏面像

bundle.putString("title", "from receiver"); 
0

如果BroadcastReceiver正在偵聽,那麼應用程序也在「運行」。 如果你的意思是開啓的活動,然後

@Override 
public void onReceive(Context context, Intent intent) { 
    context.startActivity(new Intent(context, YourActivity.class)); 
} 

您需要在靜態註冊的接收器清單(從DOC)

You can either dynamically register an instance of this class with Context.registerReceiver() or statically publish an implementation through the <receiver> tag in your AndroidManifest.xml. 你也應該指定你不能意圖動作捕捉

<receiver android:name=".YourReceiver" 
    android:exported="true" 
    android:enabled="true" > 
    <intent-filter> 
     <action android:name="android.net.wifi.WIFI_STATE_CHANGED" /> 
    </intent-filter> 
</receiver> 
+0

是的,我的意思是打開相應的活動,但我的應用程序沒有運行 – 2013-02-27 11:44:16

+0

我要運行它收聽到廣播reciever – 2013-02-27 11:44:44

+0

那麼你可能要註冊是靜態(更新答案) – 2013-02-27 11:48:08

0

當您發送您需要添加一個標誌來啓動它尚未運行的程序包的廣播。

getContext().sendBroadcast(new Intent("MY_ACTION").setFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES), null); 
相關問題