我是android的初学者。我有两个班,第一班是
public class SmsReceiver extends BroadcastReceiver{}
第二节课是
public class SMS extends Activity{}
我想做的就是:当我收到短信,开始活动并做点什么。但我想用“服务”代替“活动”。我的意思是当应用程序启动时,然后启动没有活动的服
这可能吗?
答案 0 :(得分:3)
从SmsReceiver启动您的服务:
public class SmsReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if(action.equals("android.provider.Telephony.SMS_RECEIVED")){
//action for sms received
// start service here
Intent intent=new Intent(context,Your_Service.class);
context.startService(intent);
}
else {
}
}
}
并确保您已在AndroidManifest.xml
中注册了您的服务:
<service android:name="com.xxx.xx.Your_Service" />
答案 1 :(得分:1)
是的,你可以通过创建一个在你的应用程序启动时调用你的服务的BroadCastReceiver来做到这一点。这是我给出的完整答案。 Android - Start service on boot
如果你不想为你申请任何图标/启动器,你也可以这样做,只是不要创建任何活动
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
只需声明您的服务正常声明。
答案 2 :(得分:0)
当你有短信时,你可以通过广播接收器开始服务
@Override
public void onReceive(Context context, Intent intent) {
try {
context.startService(new Intent(context,
YourService.class));
} catch (Exception e) {
Log.d("Unable to start ", "Service on ");
}
并请确保您已提及AndroidManifest.xml文件的权限
<uses-permission android:name="android.permission.RECEIVE_SMS">
对于发送和接收的短信,您可以查看本教程Sending sms in android