据我了解, TextToSpeech() 只是另一个类。如果你在一个活动中创建一个对象,当你移动到另一个活动时它会被销毁。
在活动之间共享同一个对象有不同的方法,比如通过意图传递它们。
在您的情况下,您可以创建一个定义 ptrTTS 的应用程序类,如下所示(但不确定它是否正确):
class MyApp extends Application {
private TextToSpeech ptrTTS;
public TextToSpeech getObject(){
return ptrTTS;
}
public TextToSpeech setObject(TextToSpeech obj){
ptrTTS = obj;
}
}
然后你选择你的第一个 Activity 来初始化它。
class MainActivity extends Activity {
@Override
public void onCreate(Bundle b){
...
TextToSpeech ptr = new TextToSpeech(this, this);
MyApp appState = ((MyApp)getApplicationContext());
appState.setObject(ptr);
...
}
}