如何通过广播接收器的方法onReceive启动Intent

时间:2012-02-26 11:20:55

标签: android-intent

我的广播接收器有问题。 它不会从onReceive()方法启动一个活动 这是我的清单:

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >
    <receiver 
        android:name=".MyBroadcastReceiver">
        <intent-filter>
            <action android:name="android.intent.action.ACTION_POWER_CONNECTED"/>
        </intent-filter>
    </receiver>
    <activity
        android:name=".BatteryActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity 
        android:name=".ChargeConnected">
        <intent-filter>
            <action android:name="gang.my_package.Battery.CHARGE_CONNECTED"/>
            <category android:name="android.intent.category.DEFAULT"/>
        </intent-filter>
    </activity>
</application>

这是我的方法onReceive():

public void onReceive(Context context, Intent intent) 
{
    // TODO Auto-generated method stub
    Intent myIntent = new Intent("gang.my_package.Battery.CHARGE_CONNECTED");
    context.startActivity(myIntent);
    //Toast.makeText(context, "Hello World!", Toast.LENGTH_LONG).show();
}

当我尝试做吐司时,它有效。 但如果我尝试开始一项新活动,它就无法运作。 那么问题是什么? 请帮忙

1 个答案:

答案 0 :(得分:1)

问题是您的myIntent变量未描述要启动的活动。 http://www.androidcompetencycenter.com/2009/03/tutorial-how-to-start-a-new-activity/有一个描述有效Activity意图的示例(对于当前应用程序中的Activity)。 How to start activity in another application?显示了创建通用活动意图(意味着它可以在任何应用程序中)。