不能从broadcastreceiver调用活动

时间:2014-12-06 17:21:05

标签: java android android-intent android-activity broadcastreceiver

我尝试从广播接收器调用我的主要活动

使用此代码:

        Intent i = new Intent();
        i.setClassName(MainActivity.class.getPackage().toString(),
                MainActivity.class.getName().toString());
        i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(i);

我收到此错误:

12-06 19:17:19.776: E/AndroidRuntime(29271): Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class {package com.example.dowantcall/com.example.dowantcall.MainActivity}; have you declared this activity in your AndroidManifest.xml?
带有清单声明的

<activity
    android:name="com.example.dowantcall.MainActivity" 
    android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen">
   <!--  android:theme="@style/Theme.Transparent"> -->
    <intent-filter>

    </intent-filter>
</activity>

修改

不过,我试过了:

    Intent i = new Intent();
    i.setClassName(MainActivity.class.getPackage().toString(),
            "MainActivity");
    i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    context.startActivity(i);

并得到了同样的错误:

12-06 19:17:19.776:E / AndroidRuntime(29271):引起:android.content.ActivityNotFoundException:无法找到显式活动类{package com.example.dowantcall / MainActivity};你有没有在AndroidManifest.xml中声明这个活动?

我错过了什么?

2 个答案:

答案 0 :(得分:0)

试试这个

Intent i = new Intent(context, MainActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);

答案 1 :(得分:0)

试试这个。

    Intent i = new Intent(context,MainActivity.class);

    i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

    context.startActivity(i);