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);