ここでは、簡単なサービスプログラムを試しました。サービスの開始は正常に機能し、Toastを生成しますが、サービスの停止はしません。このシンプルなサービスのコードは次のとおりです。
public class MailService extends Service {
@Override
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
return null;
}
public void onCreate(){
super.onCreate();
Toast.makeText(this, "Service Started", Toast.LENGTH_SHORT).show();
}
public void onDestroyed(){
Toast.makeText(this, "Service Destroyed", Toast.LENGTH_SHORT).show();
super.onDestroy();
}
}
このサービスが呼び出されるアクティビティのコードは次のとおりです。
public class ServiceTest extends Activity{
private Button start,stop;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.service_test);
start=(Button)findViewById(R.id.btnStart);
stop=(Button)findViewById(R.id.btnStop);
start.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
startService(new Intent(ServiceTest.this,MailService.class));
}
});
stop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
stopService(new Intent(ServiceTest.this,MailService.class));
}
});
}
}
OnDestroy()メソッドでトーストを生成する停止ボタンでサービスを停止するのを手伝ってください。ここでサービス停止の問題に関する多くの投稿を見てきましたが、満足のいくものではないので、新しい質問を投稿します。満足のいく答えを期待しています。
onDestroyed()
間違った名前です
onDestroy()
この質問だけでなく、あなたのコードでも間違いを犯しましたか?
このコードは私のために機能します:これを確認してください link
これは、活動中のサービスを停止および開始するときのコードです
case R.id.buttonStart:
Log.d(TAG, "onClick: starting srvice");
startService(new Intent(this, MyService.class));
break;
case R.id.buttonStop:
Log.d(TAG, "onClick: stopping srvice");
stopService(new Intent(this, MyService.class));
break;
}
}
}
そしてサービスクラスで:
@Override
public void onCreate() {
Toast.makeText(this, "My Service Created", Toast.LENGTH_LONG).show();
Log.d(TAG, "onCreate");
player = MediaPlayer.create(this, R.raw.braincandy);
player.setLooping(false); // Set looping
}
@Override
public void onDestroy() {
Toast.makeText(this, "My Service Stopped", Toast.LENGTH_LONG).show();
Log.d(TAG, "onDestroy");
player.stop();
}
ハッピーコーディング!
サービスを停止するには、メソッドstopService()
を使用する必要があります。
Intent myService = new Intent(MainActivity.this, BackgroundSoundService.class);
//startService(myService);
stopService(myService);
次に、サービスのメソッドonDestroy()
が呼び出されます。
@Override
public void onDestroy() {
Log.i(TAG, "onCreate() , service stopped...");
}
完全な例 は、サービスの停止方法を含みます。