我是android的新手,对此我有疑问。
如何在android中制作单个应用程序?我用谷歌搜索了它,我得到了解决它的方法是将launchMode设置为singleTask或singleInstance,我当然尝试过,但没有得到预期的解决方案。
实际上我有一个 MP3 播放器应用程序,然后运行它:
按主页按钮->按住主页按钮->选择我的应用程序->恢复正常。
但是当它启动时:
按返回按钮->按住主页按钮->选择我的应用程序->恢复不正常。我的意思是 android 创建了我的应用程序的一个新实例,你知道,2 个应用程序一起运行,但我不希望这样。
我尝试将启动模式设置为 singleTask。它在第一个活动(我设置为 singleTask)中工作正常,但是当我在屏幕上按下一个按钮以引用新活动(我没有设置为 sigleTask)时,它不能正常工作。
我的应用程序有很多活动,所以我认为将启动模式设置为 singleTask 或 singleInstane 完全不好。
期待您的回答。
谢谢你。@@:如果有任何英语语法错误,我很抱歉(我不擅长英语)。
更新:
我已经解决了这个问题,但现在我怀疑我的模拟器。正如您之前提到的,按下后退按钮将破坏应用程序(调用 finish() 方法),因此我的应用程序所拥有的所有环境都将被释放。但是当我按下后退按钮时,我的应用程序可能仍在运行,因为我仍然听到正在播放的歌曲。?
我的代码:
public class MainActivity extends Activity {
MediaPlayer mp;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mp = new MediaPlayer();
playSong("sdcard/Music/lung ta lung tung.MP3");
}
public void playSong(String str)
{
try {
mp.setDataSource(str);
mp.prepareAsync();
mp.setOnPreparedListener(new OnPreparedListener() {
public void onPrepared(MediaPlayer arg0) {
mp.start();
}
});
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}