我尝试使用AlarmManager和后台服务为SMS调度开发Android应用程序。这是代码片段:(获取用户输入后)
Bundle b=getIntent().getExtras() ;
String s1,s2,s3,s4 ;
s1=b.getString("time") ;
s2=b.getString("target") ;
s3=b.getString("text") ;
s4=b.getString("date") ;
t1.setText(s1) ;
t2.setText(s2) ;
t3.setText(s3) ;
Calendar cal=Calendar.getInstance() ;
Intent intent=new Intent(SecondActivity.this,SmsSrevice.class) ;
intent.putExtra("date",s4) ;
intent.putExtra("time",s1) ;
intent.putExtra("num",s2) ;
intent.putExtra("message",s3) ;
this.startService(intent);
PendingIntent pindent=PendingIntent.getService(SecondActivity.this,0, intent,0) ;
AlarmManager am=(AlarmManager)getSystemService(Context.ALARM_SERVICE) ;
am.setRepeating(AlarmManager.RTC_WAKEUP,cal.getTimeInMillis(),1000,pindent) ;
这是服务代码段:
public int onStartCommand(Intent intent, int flags, int startId) {
super.onStartCommand(intent, flags, startId) ;
Calendar cal=Calendar.getInstance() ;
String cdate, ctime ;
SimpleDateFormat sf=new SimpleDateFormat("d-M-yyyy") ;
SimpleDateFormat sd=new SimpleDateFormat("H:m") ;
cdate=sf.format(cal.getTime()) ;
ctime=sd.format(cal.getTime()) ;
Bundle b ;
b=intent.getExtras() ;
String m1=b.getString("date") ;
String m2=b.getString("time") ;
String m3=b.getString("num") ;
String m4=b.getString("message") ;
if(m1.equals(cdate) && m2.equals(ctime) && f!=1)
{ SmsManager sms=SmsManager.getDefault() ;
sms.sendTextMessage(m3,null,m4,null,null) ;
Toast.makeText(this,"Message sent",Toast.LENGTH_LONG).show() ;
//super.onDestroy();
m2="done" ;
}
else
{
q=1 ;
//f=2 ;
}
return 0 ;
}
@Override
public void onDestroy() {
super.onDestroy();
Toast.makeText(this, "Service Stopped", Toast.LENGTH_LONG).show();
ActivityManager ama=(ActivityManager)getSystemService(ACTIVITY_SERVICE) ;
}
我无法停止服务......它一直在发送给定时间的短信。有任何想法吗?我是Android开发的新手....提前感谢...
答案 0 :(得分:0)
我想你想停止在后台运行的服务
停止正在运行的后台服务
Intent svc = new Intent(MainActivity.this , BackGroundActivity.class);
stopService(svc);
此处BackGroundActivity是在后台运行的活动
MainActivity是BackGroungActivity运行的活动。
希望这会有所帮助.. !!
答案 1 :(得分:0)
stopself
工作结束后,Service
致电Service
:
sms.sendTextMessage(m3,null,m4,null,null) ;
stopself();
有关详细信息,请参阅here。