0

我有以下活动课程:

public class Main extends TabActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    public class LocationUpdateReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        Toast.makeText(context, "broadcast received", Toast.LENGTH_LONG).show();
        Log.e("ADNAN", "received");
    }

    }

}

并在我的清单文件中添加以下条目:

<receiver android:name=".LocationUpdateReceiver" android:enabled="true"/>

我使用以下代码向我的班级发送广播:

Intent intent = new Intent(this,LocationUpdateReceiver.class);
        sendBroadcast(intent);

但接收者没有收到广播。但是,如果我将接收器类放入它自己的文件中,即 LocationUpdateReceiver.java,那么它会按预期工作。我在这里做错了什么?我需要在清单文件中以某种不同的方式指定我的接收器吗?如何将广播接收器创建为内部类?

4

2 回答 2

1

如果你想让它成为 Activity 的成员,你应该像这样在一些 Activity 的回调(例如onCreate())中注册它。

于 2011-05-14T11:08:10.890 回答
0

Android 不会从清单文件中找到“.LocationUpdateReceiver”,因为没有(除非您按照您所说的那样创建它)。

不知道它是否有效,但请尝试在清单文件中使用“.TabActivity$LocationUpdateReceiver”。内部类的文件名以这种方式引用。

于 2011-05-14T12:00:54.243 回答