我想创建一个在后台运行的Android应用程序,并检查手机中的新短信。我使用从活动调用的服务来做到这一点。这就是代码。
服务
public class SMSChecker extends Service {
private SMSReceiver mSMSreceiver;
private IntentFilter mIntentFilter;
@Override
public void onCreate(){
Toast.makeText(this, "Check Service Created", Toast.LENGTH_SHORT).show();
mSMSreceiver = new SMSReceiver();
mIntentFilter = new IntentFilter();
mIntentFilter.addAction("android.provider.Telephony.SMS_RECEIVED");
registerReceiver(mSMSreceiver, mIntentFilter);
}
@Override
public void onDestroy() {
super.onDestroy();
Toast.makeText(this, "Check Service Destroyed", Toast.LENGTH_LONG).show();
unregisterReceiver(mSMSreceiver);
}
}
我认为代码对我想做的事情是正确的。
服务内部我正在调用一个BroadcastReceiver,它给我邮件的正文和发件人的号码。 (代码有效,但我不确定我是否正确使用BroadcastReceiver。)
现在,我想通过GPS_PROVIDER了解手机的位置并将其发送到手机号码,但我无法通过BroadcastReceiver进行操作。现在我的问题是,从这一点开始我能做些什么?我应该创建另一个从BroadCastReceiver调用的服务还是创建另一个Activity?问题是我不想要这个活动的布局。我希望一切都在后台。