Короче я начал изучать Java для Android, написал пару программ, и тут я хотел написать плеер, простой медиа плеер.
Посмотрел пару примеров, и тут возникла проблема, не запускается фоновый процесс. Я думал, что проблема где-то в коде плеера, но нет, я создал новый проект, и вытянул всё необходимое для теста в него. Но результат тот же.
И вот код:
package com.wartortle.netplay
import android.app.*;
import android.os.*;
import android.media.MediaPlayer;
import android.content.Intent;
import android.net.Uri;
import android.widget.*;
public class MainActivity extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Toast.makeText(this,"Проверка того, что makeToast() вообще работает",Toast.LENGTH_SHORT).show(); // Тупо проверка
Intent svc = new Intent(this, BackgroundSoundService.class);
startService(svc); // Стартуем!
Toast.makeText(getApplicationContext(),"Сервис должен запуститься",Toast.LENGTH_SHORT).show();
}
public class BackgroundSoundService extends Service {
private static final String TAG = null;
MediaPlayer player;
public IBinder onBind(Intent arg0) {
Toast.makeText(getApplicationContext(),"OnBind",Toast.LENGTH_LONG).show();
return null;
}
@Override
public void onCreate() {
super.onCreate();
Toast.makeText(getApplicationContext(),"OnCreate",Toast.LENGTH_LONG).show();
player = MediaPlayer.create(this,Uri.parse("https://ruc.hotmo.org/get/music/20190521/K-391_-_Summertime_64379726.mp3"));
player.setLooping(false); // Set looping
player.setVolume(100,100);
}
public int onStartCommand(Intent intent, int flags, int startId) {
Toast.makeText(getApplicationContext(),"OnStartCommand",Toast.LENGTH_LONG).show();
player.start();
return 1;
}
public void onStart(Intent intent, int startId) {
Toast.makeText(getApplicationContext(),"OnStart",Toast.LENGTH_LONG).show();
}
public IBinder onUnBind(Intent arg0) {
// TO DO Auto-generated method
return null;
}
public void onStop() {
}
public void onPause() {
}
@Override
public void onDestroy() {
Toast.makeText(getApplicationContext(),"OnDestroy",Toast.LENGTH_LONG).show();
player.stop();
player.release();
}
@Override
public void onLowMemory() {
}
}
}
Посмотрел StackOverflow, и оттуда выяснил, что надо добавить эту строчку в манифест:
<service android:enabled="true" android:name=".BackgroundSoundService" />
Но ситуацию это не поменяло, приложение запускается, кидает 2 Toast'а и всё.