我在 Activity
(ActionBarActivity
) 中创建了一个 BroadcastReceiver
像这样
public class MyTabListner extends ActionBarActivity {
.
.
.
public class AppManagerBroadcast extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
boolean applicationStatus = intent.getBooleanExtra(Intent.EXTRA_REPLACING, false);
String toastMessage = null;
if(intent.getAction().equals("android.intent.action.PACKAGE_INSTALL")){
toastMessage = "PACKAGE_INSTALL: "+ intent.getData().toString();
}else
if(intent.getAction().equals("android.intent.action.PACKAGE_REPLACED")){
toastMessage = "PACKAGE_REPLACED: "+ intent.getData().toString() ;
}else
if(intent.getAction().equals("android.intent.action.PACKAGE_REMOVED")){
toastMessage = "PACKAGE_REMOVED: "+ intent.getData().toString();
}
//Display Toast Message
if(toastMessage != null){
Toast.makeText(context, toastMessage, Toast.LENGTH_LONG).show();
}
}
}
.
.
.
}
我在manifest.xml中注册 像这样
<receiver
android:name="com.example.activity.MyTabListner$AppManagerBroadcast"
android:enabled="true" >
<intent-filter android:priority="1" >
<action android:name="android.intent.action.PACKAGE_INSTALL" />
<action android:name="android.intent.action.PACKAGE_REPLACED" />
<action android:name="android.intent.action.PACKAGE_REMOVED" />
<data android:scheme="package" />
</intent-filter>
</receiver>
但我以这种方式得到了异常(exception)。 异常(exception)是。
09-11 17:45:46.434: E/AndroidRuntime(23502): FATAL EXCEPTION: main
09-11 17:45:46.434: E/AndroidRuntime(23502): java.lang.RuntimeException: Unable to instantiate receiver com.example.activity.MyTabListner$AppManagerBroadcast: java.lang.InstantiationException: can't instantiate class com.example.activity.MyTabListner$AppManagerBroadcast; no empty constructor
09-11 17:45:46.434: E/AndroidRuntime(23502): Caused by: java.lang.InstantiationException: can't instantiate class com.example.activity.MyTabListner$AppManagerBroadcast; no empty constructor
当我创建副 Activity 时,我成功地完全运行了我的应用程序但是 我想在我的 Activity 而非外部 Activity 中使用这个broadcastreceiver。 如何避免这个异常
最佳答案
内部类必须是静态类。
改变
public class AppManagerBroadcast extends BroadcastReceiver
到
public static class AppManagerBroadcast extends BroadcastReceiver
关于android - 如何处理在 Activity 中创建的广播?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25787311/