Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用LocalBroadcastManager而不使用其他类的活动_Java_Android_Localbroadcastmanager - Fatal编程技术网

Java 使用LocalBroadcastManager而不使用其他类的活动

Java 使用LocalBroadcastManager而不使用其他类的活动,java,android,localbroadcastmanager,Java,Android,Localbroadcastmanager,这不起作用,我从不在接收器中接收消息。我已经工作了好几个小时了。我试图做的是使用LocalBroadcastManager,而不使用另一个AppContext类进行活动 第一类 import android.content.Context; public class AppContext extends Application { private static AppContext instance; public AppContext() { instan

这不起作用,我从不在接收器中接收消息。我已经工作了好几个小时了。我试图做的是使用LocalBroadcastManager,而不使用另一个AppContext类进行活动

第一类

import android.content.Context;

public class AppContext extends Application {

    private static AppContext instance;

    public AppContext() {
        instance = this;
    }

    public static Context getContext() {
        return instance;
    }

}
第二类

@Override
public void onResume() {

    receiver = new BroadcastReceiver() {

        @Override
        public void onReceive(Context context, Intent intent) {
            //receive your message here

            String message = intent.getStringExtra("message");
            Log.d("receiver", "Got message: " + message);

            Toast.makeText(getApplicationContext(), message, Toast.LENGTH_LONG).show();

        }

    };

    LocalBroadcastManager.getInstance(AppContext.getContext()).registerReceiver(receiver,
            new IntentFilter("custom-event-name"));
类别3

                Log.d("sender", "Broadcasting message");
                Intent intent = new Intent("custom-event-name");
                // You can also include some extra data.
                intent.putExtra("message", "99999");
                LocalBroadcastManager.getInstance(AppContext.getContext()).sendBroadcast(intent);
我也有同样的问题。 不要改变第三课的任何内容。我认为它很完美。 在类2中,创建一个扩展BroadcastReceiver的内部类

private class Class2Receiver extends BroadcastReceiver 
{
        @Override
        public void onReceive(Context context, Intent intent) 
{
            Class2.this.class2Refresh();
         }
    }
//class2Refresh():在此方法中接收您的消息

在class2的onResume()方法中,实例化如下:

Class2 class2Rec=new Class2.Class2Receiver();
        LocalBroadcastManager.getInstance(getContext()).registerReceiver(class2Rec,new IntentFilter("custom-event-name"));
        class2Refresh();
如果有帮助,请告诉我