我正在开发一个在特定时间播放azan的应用程序,为此我创建了一个AsynchTask类,每当时间与系统时间匹配时,播放器就开始播放。 但它给了我一个空指针异常,因为它无法访问azan.java中的媒体播放器。那么在asynchTask类中访问媒体播放器实例的过程是什么,以便我可以在后台播放,尽管用户在另一个应用程序屏幕上,播放器应该开始播放。
这是我的代码
class azanBackground extends AsynchTask<VOID,VOID,VOID>
{
protected Void doInBackground<Void...params>{
String temp="2:50 am"
if(systemTime.equals(temp)){
azan.fplayer.start(); // I am getting a null pointer exception here
}
答案 0 :(得分:1)
为了在用户与其进行交互时在应用位置的后台播放媒体,您必须从应用程序的主要活动启动服务/广播接收器,并且服务/广播接收器应包含所有方法与播放有关。要允许活动与服务交互,还需要服务连接。简而言之,我们需要实现有界服务。
启动具有待处理意图的服务,如警报服务
参考http://www.codeproject.com/Articles/258176/Adding-Background-Music-to-Android-App
答案 1 :(得分:0)
当您的应用程序进入后台时,它无法通知您发生了某些事情。相反,即使您的应用程序是在后台运行或关闭,您也需要使用在后台运行的服务。所以在服务中添加你的计时检查逻辑,当时间匹配时,它将启动aazaan。