私はアンドロイドの初心者で、それについて質問があります。
Androidで単一のアプリケーションを作成するにはどうすればよいですか? 私はそれをグーグルで検索し、launchModeをsingleTaskまたはsingleInstanceに設定することを解決する方法を得ました。もちろん試しましたが、期待される解決策が得られませんでした。
実際、私はMP3プレーヤーアプリを持っていました.それを実行すると:
ホームボタンを押す→ホームボタンを長押し→マイアプリを選択→再開OK。
しかし、それが起動されると:
戻るボタンを押す->ホームボタンを長押しする->アプリを選択する->再開してもOKではありません。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();
}
}