类的ActivityNotFoundException扩展了BroadcastReceiver

时间:2017-01-06 12:48:18

标签: android broadcastreceiver

我的最终目标是从头到尾学习非接触式卡交易中的数据流,因为我正在制作一个接受非接触式卡的Android应用程序。 在第一个屏幕中,我有一个用于输入金额的文本框和一个用于接受它的按钮,它将进入下一个屏幕。 在下一个屏幕中,我有一个显示数量的按钮和一个按钮(Tap)  应该启动广播监听器(为了测试我试图捕获AIRPLANE_MODE的广播)。 现在我的问题是每当我按下Tap按钮时,应用程序说 - 不幸的是app已停止。 在调试中我可以看到 -

  

引起:android.content.ActivityNotFoundException:无法找到   显性活动类   {com.example.myfirstapp / com.example.myfirstapp.AskToTapCard};有你   在AndroidManifest.xml中声明了此活动?

但是,AskToTapCard类扩展自BroadcardListener。我现在期待的是等待的应用程序,我将切换到airlane模式和应用程序来检测它并记录。 我进行了更改以使其从AppCompatActivity扩展并显示虚拟页面,它显示。如何解决这个问题? In是一个完整的内部项目,我可以提供任何源文件,让我知道我需要哪一个。下图可以帮助您访问我的项目的大小。 enter image description here

enter image description here

1 个答案:

答案 0 :(得分:2)

错误说:ActivityBroadcastReceiver不是Intent intent = new Intent(context, AskToTapCard.class); context.startActivity(intent); ,而是Intent intent = new Intent(context, AskToTapCard.class); context.sendBroadcast(intent);

所以,即使你没有展示你的代码(你应该,这是ppl低估你的一个可能原因),我只能假设你有这样的东西:

{{1}}

这正是错误告诉你的。你告诉系统运行一个活动,但你给系统一个BroadcastReceiver。一旦理解了错误,解决方案很简单:

{{1}}