Nano Hash - криптовалюты, майнинг, программирование

Как остановить активность, когда пользователь нажимает «Домой»?

Я создаю музыкальное приложение. У меня проблема: когда пользователь нажимает назад/домой, музыка продолжает играть.

Вот мой APK-файл

Как я могу разрешить пользователю вернуться к основному действию и очистить текущее действие (воспроизведение музыки)?


Ответы:


1

Вам нужно переопределить onPause() или onStop() и остановить там музыку.

16.05.2012
  • Музыка и видео в моем приложении воспроизводятся в WebView, поэтому я не мог использовать кнопку макета для остановки. 16.05.2012

  • 2

    Попробуйте переопределить метод onWindowsFocusChanged(boolean hasFocus).

    16.05.2012

    3

    Вы можете использовать onPause() вашей Activity, чтобы остановить или приостановить работу медиаплеера.

    Переопределите onPause() следующим образом:

    @Override
    protected void  onPause()
    {
        super.onPause();
      if(mediaplayer!=null)
    {
        mediaplayer.pause();
    }
    }
    

    И когда вы снова войдете в свою деятельность, переопределите onResume() следующим образом:

    @Override
                protected void onResume() {
                    super.onResume();
    
     if(mediaplayer!=null)
    {
        mediaplayer.start();
    }
    }
    
    16.05.2012
  • моя музыка и видео воспроизводятся в WebView. Можете ли вы дать решение? 16.05.2012

  • 4

    важно переключение между onpause и onstart. Метод onPause() переопределен, чтобы дать игроку контроль над этим экземпляром. также вы можете сослаться на это

    package org.example.audio;
    
    import android.app.Activity;
    import android.media.MediaPlayer;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.Toast;
    
    public class AudioDemo extends Activity implements OnClickListener {
        private static final String TAG = "AudioDemo";
        private static final String isPlaying = "Media is Playing"; 
        private static final String notPlaying = "Media has stopped Playing"; 
    
        MediaPlayer player;
        Button playerButton;
    
        public void onClick(View v) {
            Log.d(TAG, "onClick: " + v);
            if (v.getId() == R.id.play) {
                playPause();
            }
        }
    
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
    
            player = MediaPlayer.create(this, R.raw.robotrock);
            player.setLooping(false); // Set looping
    
            // Get the button from the view
            playerButton = (Button) this.findViewById(R.id.play);
            playerButton.setText(R.string.stop_label);
            playerButton.setOnClickListener(this);
    
            // Begin playing selected media
            demoPlay();
    
            // Release media instance to system
            player.release();
    
        }
    
        @Override
        public void onPause() {
            super.onPause();
            player.pause();
        }
    
        // Initiate media player pause
        private void demoPause(){
                player.pause();
                playerButton.setText(R.string.play_label);
                Toast.makeText(this, notPlaying, Toast.LENGTH_LONG).show();
                Log.d(TAG, notPlaying);
        }
    
        // Initiate playing the media player
        private void demoPlay(){
                player.start();
                playerButton.setText(R.string.stop_label);
                Toast.makeText(this, isPlaying, Toast.LENGTH_LONG).show();
                Log.d(TAG, isPlaying);
        }
    
        // Toggle between the play and pause
        private void playPause() {
            if(player.isPlaying()) {
              demoPause();
            } else {
              demoPlay();
            }   
        }
    }
    
    16.05.2012
  • Вся моя музыка и видео воспроизводятся в WebView. Итак, я мог 16.05.2012

  • 5

    Когда пользователь нажимает кнопку «Назад», элемент управления переходит к следующему методу (вставьте этот метод в свой код)

        @Override
        public boolean onKeyDown(int keyCode, KeyEvent event) {
        super.onKeyDown(keyCode, event);
                if (keyCode == KeyEvent.KEYCODE_BACK) {
                        // code to pause or stop the music!!!!
                }
                **return false;**
            }
    
    16.05.2012
  • Уважаемый Патил, можете ли вы объяснить мне это? потому что я очень новичок в андроиде. 16.05.2012
  • Я не могу скачать ваш apk Мое мышление и разработка; 1. У вас есть два действия в вашем проекте - основное и текущее 2. В вашей текущей деятельности поместите вышеуказанный метод 3. когда пользователь нажимает кнопку НАЗАД, управление переходит в этот метод 4. поэтому напишите код внутри этого метода, чтобы остановить или приостановить свою музыку, а затем просто напишите finish(); 5. закончить(); назовет вашу основную деятельность Есть идея? 18.05.2012
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..