ユーザーがスピナーから選択したアクティビティから時間値をサービスに渡して、オーディオクリップがその時間再生されるようにしようとしています。これまでのところエラーは発生していませんが、サービスは要求された時間再生されません。エラーがないため、logcat を投稿しませんでした。見落としている単純なものであると想定しています。アクティビティから TIME_IN_MINUTES 値を取得し、サービスをその時間だけ再生したいと考えています。
サービスクラス
@Override
public void onStart(Intent intent, int startid) {
long time = 0;
if (intent.hasExtra("TIME_IN_MINUTESC")) {
time = intent.getLongExtra("TIME_IN_MINUTES", 1000);
}
Toast.makeText(this, "Ship Service Started for" + time,
Toast.LENGTH_LONG).show();
Log.d(TAG, "onStart");
myPlayer.start();
}
}
アクティビティクラス。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.ship);
button2 = (Button) findViewById(R.id.btn2);
button2.setOnClickListener(this);
stop1 = (Button) findViewById(R.id.stop);
stop1.setOnClickListener(this);
spinner2 = (Spinner) findViewById(R.id.spinner2);
ArrayAdapter<Integer> adapter = new ArrayAdapter<Integer>(this,
android.R.layout.simple_spinner_item, TIME_IN_MINUTES);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner2.setAdapter(adapter);
Intent intService = new Intent(Ship.this, Shipservice.class);
intService.putExtra("TIME_IN_MINUTES", 1000);
}
// Handle button callback
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn2:
Log.d(TAG, "onClick: starting service");
startService(new Intent(this, Shipservice.class));
break;
case R.id.stop:
Log.d(TAG, "onClick: stopping srvice");
stopService(new Intent(this, Shipservice.class));
break;
}