With a mouse click, you implement two things:
- Sound is playing
- The GIF image is showing
I'm trying to show the GIF on the screen even when I close the app I'm using the services but because the sound keeps playing while the GIF image appears, I can not find the solution.
TheService.java (CODE)
package gallery.suitapps.catwalking;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.media.MediaPlayer;
import android.media.SoundPool;
import android.os.Build;
import android.os.IBinder;
import android.provider.Settings;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
import android.widget.Toast;
import pl.droidsonroids.gif.GifImageView;
public class TheService extends Service {
final class MyThreadClass implements Runnable{
int service_id;
MyThreadClass(int service_id){
this.service_id=service_id;
}
@Override
public void run() {
}
}
SoundPool soundPool = null;
private int[] f10685s;
MainActivity main = new MainActivity();
public MediaPlayer player;
Context context;
@Override
public void onCreate() {
super.onCreate();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Toast.makeText(this,"Service Starts" , Toast.LENGTH_SHORT).show();
player = MediaPlayer.create(this,R.raw.sound2);
player.setLooping(true);
player.start();
MainActivity.imageView.setImageResource(R.drawable.cat_gif);
return START_STICKY;
}
@Override
public void onDestroy() {
Toast.makeText(this,"Service Stops" , Toast.LENGTH_SHORT).show();
player.stop();
MainActivity.imageView.setImageResource(R.drawable.ic_launcher_background);
}
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
MainActivity.java (CODE)
package gallery.suitapps.catwalking;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import pl.droidsonroids.gif.GifImageView;
public class MainActivity extends AppCompatActivity {
public static GifImageView imageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView = findViewById(R.id.catgif);
}
public void startService (View view){
Intent intent = new Intent(this,TheService.class);
startService(intent);
// imageView.setImageResource(R.drawable.cat_gif);
}
public void stopService (View view){
Intent intent = new Intent(this,TheService.class);
stopService(intent);
}
}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<Button
android:id="@+id/startService"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:text="Start Service"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.501"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.134"
android:onClick="startService"/>
<Button
android:id="@+id/stopService"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:text="Stop Service"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.502"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.362"
android:onClick="stopService"/>
<pl.droidsonroids.gif.GifImageView
android:id="@+id/catgif"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/ic_launcher_background"
android:background="@android:color/holo_blue_dark"
/>
</android.support.constraint.ConstraintLayout>
This is the solution for your requirement.
In
manifest
add thisThen in your launcher
activity
or any base activity add these permissionsIn
onCreate()
add thisHandle the request permission
and do this in
service
class check the link below and do your stuff respectivelywhere
image_layout
. xml is