@HelpMePlease2

Почему не запускается сервис приложения?

Короче я начал изучать 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'а и всё.
  • Вопрос задан
  • 104 просмотра
Пригласить эксперта
Ответы на вопрос 1
402d
@402d
начинал с бейсика на УКНЦ в 1988
добавить пермишен старт фореграунд.
службы без нотификации прибиваются через несколько секунд.
тоаст из фонового процесса приведет к крешу.

найдите на гите пример работающего плеера.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы