New activities can subclass from the SynthActivity, and that will keep the sound going. We'll actually do something a little different for preferences, but this will be useful for other activities.master
parent
6cff54c18f
commit
e90db0e8a4
@ -0,0 +1,4 @@ |
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android"> |
||||
<item android:id="@+id/settings" android:title="@string/settings" /> |
||||
</menu> |
@ -0,0 +1,68 @@ |
||||
/* |
||||
* Copyright 2013 Google Inc. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package com.levien.synthesizer.android.ui; |
||||
|
||||
import com.levien.synthesizer.android.service.SynthesizerService; |
||||
|
||||
import android.annotation.TargetApi; |
||||
import android.app.Activity; |
||||
import android.content.ComponentName; |
||||
import android.content.Context; |
||||
import android.content.Intent; |
||||
import android.content.ServiceConnection; |
||||
import android.os.Build; |
||||
import android.os.IBinder; |
||||
|
||||
/** |
||||
* A base class that handles making a synthesizer connection. All activities should subclass from |
||||
* this if sound should keep going during the activity. |
||||
*/ |
||||
public class SynthActivity extends Activity { |
||||
@Override |
||||
protected void onStart() { |
||||
super.onStart(); |
||||
bindService(new Intent(this, SynthesizerService.class), |
||||
synthesizerConnection_, Context.BIND_AUTO_CREATE); |
||||
} |
||||
|
||||
@Override |
||||
protected void onStop() { |
||||
super.onStop(); |
||||
unbindService(synthesizerConnection_); |
||||
} |
||||
|
||||
protected void onSynthConnected() { |
||||
} |
||||
|
||||
protected void onSynthDisconnected() { |
||||
} |
||||
|
||||
private ServiceConnection synthesizerConnection_ = new ServiceConnection() { |
||||
@TargetApi(Build.VERSION_CODES.HONEYCOMB_MR1) |
||||
public void onServiceConnected(ComponentName className, IBinder service) { |
||||
SynthesizerService.LocalBinder binder = (SynthesizerService.LocalBinder)service; |
||||
synthesizerService_ = binder.getService(); |
||||
onSynthConnected(); |
||||
} |
||||
public void onServiceDisconnected(ComponentName className) { |
||||
onSynthDisconnected(); |
||||
synthesizerService_ = null; |
||||
} |
||||
}; |
||||
|
||||
protected SynthesizerService synthesizerService_; |
||||
} |
Loading…
Reference in new issue