package yifeiyuan.practice.practicedemos.service;
import android.app.Service;
import android.content.ComponentName;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.Bundle;
import android.os.IBinder;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.View;
import android.widget.TextView;
import butterknife.ButterKnife;
import butterknife.InjectView;
import butterknife.OnClick;
import yifeiyuan.practice.practicedemos.DownloadService;
import yifeiyuan.practice.practicedemos.R;
public class ServiceActivity extends AppCompatActivity {
public static final String TAG = "MyService";
@InjectView(R.id.start_service)
TextView mStartService;
@InjectView(R.id.stop_service)
TextView mStopService;
@InjectView(R.id.bind_service)
TextView mBindService;
@InjectView(R.id.unbind_service)
TextView mUnbindService;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_service);
ButterKnife.inject(this);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(view -> Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", v -> {
Intent intent = new Intent();
intent.putExtra(DownloadService.EXTRA_PATH, "http://download.fir.im/v2/app/install/559d229d692d791592000016?download_token=6adb9ccc081979064c9d453b1a9d7bf5");
intent.setClass(this, DownloadService.class);
startService(intent);
}).show());
}
@OnClick({R.id.start_service, R.id.stop_service, R.id.bind_service, R.id.unbind_service})
public void onClick(View view) {
Intent intent = new Intent(ServiceActivity.this,MyService.class);
switch (view.getId()) {
case R.id.start_service:
startService(intent);
break;
case R.id.stop_service:
stopService(intent);
break;
case R.id.bind_service:
bindService(intent,con, Service.BIND_AUTO_CREATE);
break;
case R.id.unbind_service:
unbindService(con);
break;
}
}
ServiceConnection con = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
Log.d(TAG, "onServiceConnected() called with: " + "name = [" + name + "], service = [" + service + "]");
((MyService.MyBinder)service).dosth();
}
@Override
public void onServiceDisconnected(ComponentName name) {
Log.d(TAG, "onServiceDisconnected() called with: " + "name = [" + name + "]");
}
};
}