我想在广播onReceive()方法中启动系统应用程序活动

时间:2011-07-11 07:57:12

标签: android

我想在广播onReceive()方法中启动系统应用程序活动,但无法运行。我需要帮助! 我的Manifest.xml

<receiver android:name=".BootReceiver">
    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED"/>
    </intent-filter>
</receiver>

我的java:

public class BootReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        Intent b_intent = new Intent();
        b_intent.setComponent(new ComponentName("com.android.email", "com.android.email.activity.Welcome"));
        b_intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(b_intent);

    }
}

但是这个电子邮件应用程序无法运行。屏幕上只有黑色。 谢谢!

2 个答案:

答案 0 :(得分:0)

@Override
public void onReceive(Context context, Intent intent) {
Intent i = new Intent()
i.setClassName("com.android.email", "com.android.email.activity.Welcome");
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);       } 

答案 1 :(得分:0)

应用应用程序启动系统或第三方应用程序应通过隐式意图完成。硬编码软件包名称和组件名称不可靠,可能无法一直运行。

另外,我猜这个特殊活动不允许从其他应用程序中调用(我的假设,我可能错了)