2012-01-10 10 views
0

私は、再生と停止のための単純なレイアウトのボタンを1つだけ持つアプリケーションを作成しました。再生ボタンを押すと音楽が再生され、再生ボタンが停止ボタンに変わります。その後、戻るボタンを押すとアプリケーションがバックグラウンドになりますので、メニューに移動してそこからアプリケーションを起動する必要があります私はアンドロイドが私のアプリケーションの新しいインスタンスを開始し、停止ボタンがボタンを再生するために戻っているかどうかです。私がしたい..すべて私が欲しいのはアンドロイドが私のアプリケーションを再開し、それをフォアグラウンドに戻して状態を保持することですすべての私のボタンの。バックグラウンドからアプリケーションを再開する

+0

は、私はいくつかの基本的なコードサンプルを追加しました。あなたの音楽プレーヤーの設定方法を正確に推測するのは難しいですが、これはおそらく良いスタートです。 – dokkaebi

答えて

0

ユーザーが戻るボタンを使用してアプリを終了すると、アプリは停止し、状態は保存されません。 Activity.onStopのようなライフサイクルメソッドのいずれかで、アプリケーションを再開するために必要な状態を保存する必要があります。アクティビティライフサイクルhereの説明があります。

Shared Preferencesの詳細については、Saving Persistent Stateという別のセクションがあります。

[編集]

私はここにあなたのコードがどのように見えるかについていくつかの仮定を作ってるんだ、うまくいけば、あなたは、少なくともこれらのアイデアは、あなたが持っているもので動作するように適応することができます。あなたのアクティビティにちょうどいくつか追加することはおそらくトリックを行うでしょう。

アプリが閉じているときは、関連する設定を保存できるようにしたいでしょう

@Override 
public void onSaveInstanceState(Bundle icicle) { 
    super.onSaveInstanceState(icicle); 
    icicle.putString("path", mMediaPath); 
    icicle.putInt("time", mMediaPlayer.getCurrentPosition()); 
    icicle.putBoolean("isPlaying", mMediaPlayer.isPlaying()); 
} 

あなたはそれらの設定から、メディアプレーヤーを初期化する方法を設定することをお勧めします。このような何か:

private void initialize(String path, int time, boolean isPlaying) { 
    mMediaPlayer.setDataSource(path); 
    mMediaPlayer.seekTo(time); 
    if (isPlaying) mMediaPlayer.start(); 
    findViewById(R.id.my_play_button).setBackgroundResource(isPlaying? R.drawable.pause_button: R.drawable.play_button); 
} 

次に、あなたがあなたの活動が再作成されたときに呼び出すことができます。

@Override 
public void onRestoreInstanceState(Bundle icicle) { 
    super.onRestoreInstanceState(icicle); 
    String path = icicle.getString("path", DEFAULT_TRACK); 
    int time = icicle.getInt("time", 0); 
    boolean isPlaying = icicle.getBoolean("isPlaying", false); 
    this.initialize(path, time, isPlaying); 
} 
+0

私は本当にそれを取得しないでください...私は私が実際にアンドロイドプログラミングの初心者に従うことができるサンプルコードを与えることができます – HeartlessArchangel

関連する問題