Java 将字符串值传递给后台服务
请在这方面指导我。谢谢你的帮助 我的后台服务是敬酒ABC //-------------------字符串displayingText=“ABC”----------------- 我有两个字符串,ABC和DEF在Java 将字符串值传递给后台服务,java,android,Java,Android,请在这方面指导我。谢谢你的帮助 我的后台服务是敬酒ABC //-------------------字符串displayingText=“ABC”----------------- 我有两个字符串,ABC和DEF在mainactivity.java 如何将值displayingText从主活动传递到此服务 如何在toast ABC完成后将displayingText更改为DEF Java public class MyService extends Service { public static
mainactivity.java
public class MyService extends Service {
public static final long INTERVAL=3000;//variable to execute services every 5 second
private Handler mHandler=new Handler(); // run on another Thread to avoid crash
private Timer mTimer=null; // timer handling
//这个计划行不通。我应该把它放在哪里或怎样放
Intent myIntent = getIntent();
if (myIntent !=null && myIntent.getExtras()!=null)
String value = myIntent.getExtras().getString(PassToService);
@Nullable
@Override
public IBinder onBind(Intent intent) {
throw new UnsupportedOperationException("unsupported Operation");
}
@Override
public void onCreate() {
// cancel if service is already existed
if(mTimer!=null)
mTimer.cancel();
else
mTimer=new Timer(); // recreate new timer
mTimer.scheduleAtFixedRate(new TimeDisplayTimerTask(),0,INTERVAL);// schedule task
}
@Override
public void onTaskRemoved(Intent rootIntent) {
stopSelf();///its will stop service
super.onTaskRemoved(rootIntent);
}
@Override
public void onDestroy() {
Toast.makeText(this, "In Destroy", Toast.LENGTH_SHORT).show();//display toast when method called
mTimer.cancel();//cancel the timer
super.onDestroy();
}
//inner class of TimeDisplayTimerTask
private class TimeDisplayTimerTask extends TimerTask {
@Override
public void run() {
// run on another thread
mHandler.post(new Runnable() {
@Override
public void run() {
// display toast at every 10 second
//String displayingText = "ABC";
String displayingText = myIntent.getStringExtra("PassToService");
final Toast Notify = Toast.makeText(getApplicationContext(), displayingText, Toast.LENGTH_SHORT);
Notify.setGravity(Gravity.CENTER, 0, 0);
Notify.show();
Handler cancelToast = new Handler();
cancelToast.postDelayed(new Runnable() {
@Override
public void run() {
Notify.cancel();
}
}, 1000);
}
});
}
}
}您可以通过将值从活动传递到服务来实现-
startService(新的意图(YourActivity.Service.class.putExtra(“key”、“value”)) 变量的可能副本将从文件中读取,并且不应使用AsyncTask。我们是否可以在服务中实际使用getIntent()方法?我已经试过了,但是内部服务意图。getIntExtra没有work@Overridepublic int-onStartCommand(Intent-Intent,int-flags,int-startId){if(Intent!=null&&Intent.hasExtra(“key”){String i=Intent.getStringExtra(“key”);}试试这个,你能再次建议我把我上传的文件中的getstringextra放在哪里吗?