Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.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
Android:如何创建广播接收器作为活动的内部类_Android_Broadcastreceiver_Internal Class - Fatal编程技术网

Android:如何创建广播接收器作为活动的内部类

Android:如何创建广播接收器作为活动的内部类,android,broadcastreceiver,internal-class,Android,Broadcastreceiver,Internal Class,我有以下活动课: public class Main extends TabActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } public class LocationUpdateReceiver extends BroadcastReceiver { @Overrid

我有以下活动课:

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"/>

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

如果希望将其作为活动的成员,则应将其注册到某些活动的回调中(
onCreate()
),例如。

Android无法从清单文件中找到“.LocationUpdateReceiver”,因为没有(除非你像你说的那样创造了它)


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

我不想这样做,但我想不可能以另一种方式。当使用Someone API时,它不是为了做你想做的事情。祝你好运;)
Intent intent = new Intent(this,LocationUpdateReceiver.class);
        sendBroadcast(intent);