私にこれを案内してください。すべてのあなたの助けを感謝します。文字列の値をバックグラウンドサービスに渡す
私のバックグラウンドサービスがABC
乾杯です// -------------------文字列displayingText = "ABC"; -------- ---------
そして、私は2つの文字列を持っている、ABCとDEFは、私は、このサービスへの主な活動から値displayingTextを渡すにはどうすればよい
mainactivity.java
で宣言されました。- トーストABCが終了した後で、どのようにしてDEFにdisplayTextを変更しますか?
MyService.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);
}
});
}
}
}
[AndroidでAsyncTaskのトーストを表示する方法](https://stackoverflow.com/questions/16830255/how-to-display-toast-in-asynctask-in-android) –
変数は次のとおりです。ファイルから読み取られ、asynctaskを使用しないでください。 – Anthony