2014-01-28 143 views
0

我正在创建服务以在我的应用程序中播放声音。当应用程序以启动画面开始时,音频开始,然后主菜单活动开始主菜单活动有4个按钮。我没有停止我的服务点击任何按钮(你可以在我的代码中看到),但当我在我的设备上运行我的应用程序时,点击任何按钮服务停止,当我从下一个活动回来这个。声音再次开始。我想完成应用程序上次活动的服务声音。为什么服务停止

主菜单的代码活动 -

private Button hist, typ, ben, exit; 
    Intent i, objIntent; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     addListenerOnButton(); 
    } 

    public void addListenerOnButton() 
    { 
     hist = (Button) findViewById(R.id.hist); 
     hist.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View arg0) { 
       startActivity(new Intent(MainActivity.this, History.class)); 
       finish(); 
      } 
     }); 

     typ = (Button) findViewById(R.id.typ); 
     typ.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View arg0) { 
       startActivity(new Intent(MainActivity.this, Types.class)); 
       finish();   
      } 
     }); 

     ben = (Button) findViewById(R.id.ben); 
     ben.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View arg0) { 
       startActivity(new Intent(MainActivity.this, Benefits.class)); 
       finish();    
      } 
     }); 

     exit = (Button) findViewById(R.id.exit); 
     exit.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View arg0) { 
       startActivity(new Intent(MainActivity.this, EndSplash.class)); 
       finish(); 
      } 
     }); 
    } 

    @Override 
    protected void onPause() { 
     super.onPause(); 
     objIntent = new Intent(MainActivity.this, PlayAudio.class); 
     stopService(objIntent); 
    } 

    @Override 
    public void onBackPressed() { 
     super.onBackPressed(); 
     objIntent = new Intent(MainActivity.this, PlayAudio.class); 
     stopService(objIntent);   
    } 

    @Override 
    public void onResume() 
    { 
     super.onResume(); 
     objIntent = new Intent(MainActivity.this, PlayAudio.class); 
     startService(objIntent); 
    } 
} 

闪屏活动 -

TimerTask task; 
    Intent objIntent, intent; 
    Handler handler; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.splash); 
     UtilClass.playing = true; 
     objIntent = new Intent(SplashScreen.this, PlayAudio.class); 
     startService(objIntent); 
     new Handler().postDelayed(csRunnable2, 5000); 
     } 

    Runnable csRunnable2 = new Runnable() 
    {  
     @Override 
     public void run() 
     { 
      intent = new Intent(SplashScreen.this, MainActivity.class); 
      startActivity(intent); 
      finish(); 
     } 
    }; 

    public void onBackPressed() 
    {  
     // myHandler.removeCallbacks(myRunnable); 
     objIntent = new Intent(this, PlayAudio.class); 
     stopService(objIntent); 
     finish(); 
     return; 
    } 

    @Override 
    protected void onPause() { 
     super.onPause(); 
     objIntent = new Intent(this, PlayAudio.class); 
     stopService(objIntent); 
    } 
} 

回答

1

每当你将导航到另一个活动,你当前的活动的将被调用,你已经停止服务您的方法。

您还需要评论说,在方法停止服务的代码:

@Override 
protected void onPause() { 
    super.onPause(); 
    //objIntent = new Intent(MainActivity.this, PlayAudio.class); 
    //stopService(objIntent); 
} 

您也可以将您的服务代码进行更适当的回答,谢谢。

+0

我在启动屏幕上启动服务,并在开始此活动时完成(),我不认为完成对此有任何影响。等待我更新我的问题。 –

+0

onPause方法呢? –

+0

查看更新的问题。 –