package com.example.ipcplayer.activity; import com.example.ipcplayer.R; import com.example.ipcplayer.controller.IUICallBack; import com.example.ipcplayer.homeview.MiniBar; import com.example.ipcplayer.homeview.MiniBar.MiniBarCallback; import com.example.ipcplayer.localfragment.HomeFragment; import com.example.ipcplayer.service.IPlayback; import com.example.ipcplayer.service.PlaybackService; import com.example.ipcplayer.utils.LogUtil; import android.content.ComponentName; import android.content.Intent; import android.content.ServiceConnection; import android.os.Bundle; import android.os.IBinder; import android.os.RemoteException; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentTransaction; import android.view.KeyEvent; import android.view.View; import android.widget.FrameLayout; public class MainActivity extends BaseFragmentActivity implements IUICallBack , MiniBarCallback{ private static final String TAG = MainActivity.class.getSimpleName(); private FrameLayout mHome_Container; private View mBottom_View; private static IPlayback service = null; private FragmentManager mFragmentManager; @Override protected void onCreate(Bundle arg0) { super.onCreate(arg0); setContentView(R.layout.main); initView(); initManagers(); initHomeFragment(); bindService(); } private void initView(){ mHome_Container = (FrameLayout) findViewById(R.id.home_container); mBottom_View = (View) findViewById(R.id.bottom_view); mBottom_View.setBackgroundColor(999999); } private void initManagers(){ mFragmentManager = getSupportFragmentManager(); } private void initHomeFragment() { FragmentTransaction fragmentTransaction = mFragmentManager .beginTransaction(); HomeFragment homeFragment = new HomeFragment(); fragmentTransaction.add(R.id.home_container, homeFragment); // fragmentTransaction.addToBackStack(homeFragment.getClass() // .getSimpleName()); fragmentTransaction.commit(); } private void bindService() { Intent mServiceIntent = new Intent(IPlayback.class.getName()); bindService(mServiceIntent, conn, BIND_AUTO_CREATE); Intent intent = new Intent(this, PlaybackService.class); startService(intent); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { return super.onKeyDown(keyCode, event); } @Override protected void onPause() { super.onPause(); } @Override protected void onResume() { super.onResume(); } @Override protected void onStop() { super.onStop(); } @Override protected void onDestroy() { super.onDestroy(); } @Override public void startActivityFromFragment(Fragment fragment, Intent intent, int requestCode) { super.startActivityFromFragment(fragment, intent, requestCode); } @Override public void onShow(Fragment fragment, boolean saveToStack, Bundle data) { doShowAction(fragment, saveToStack,data); } @Override public void onBack(Fragment fragment, Bundle data) { } @SuppressWarnings("unused") private void doShowAction(Fragment fragment, boolean saveToStack, Bundle data){ LogUtil.d(TAG + " doShowAction fragment: " + fragment.toString()); if(fragment == null){ LogUtil.d(TAG + " doShowAction fragment is null " ); } if(data != null){ Bundle extras = fragment.getArguments(); extras.putAll(data); } FragmentTransaction ft = mFragmentManager.beginTransaction(); if(saveToStack){ ft.replace(R.id.home_container, fragment, fragment.getClass().getSimpleName()); ft.addToBackStack(fragment.getClass().getSimpleName()); }else{ ft.replace(R.id.home_container, fragment, fragment.getClass().getSimpleName()); ft.addToBackStack(null); } ft.commitAllowingStateLoss(); } private ServiceConnection conn = new ServiceConnection(){ @Override public void onServiceConnected(ComponentName name, IBinder binder) { service = IPlayback.Stub.asInterface(binder); } @Override public void onServiceDisconnected(ComponentName name) { service = null; } }; public static IPlayback getPlayService(){ return service; } @Override public void onNextAction(MiniBar miniBar) { miniBar.onNextButtonClick(); } @Override public void onPlayAction(MiniBar miniBar) { miniBar.onControlButtonClick(); } @Override public void onClickAction(MiniBar miniBar) { miniBar.onMiniBarClick(); } }