2011-01-13 17 views
0

私は次のコードを持っています。私はHelloAndroid2.javaでアラームを設定し、2秒後にAlarmReceiver.javaが私にToastメッセージを表示します。私はアプリにいくつかのオーディオを追加したいのですが、いくつかの問題があります。Android MediaPlayerの質問

HelloAndroid2.java:

public class HelloAndroid2 extends Activity { 


@Override 
public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.main); 

Intent intent = new Intent(this, AlarmReceiver.class); 

PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, 
intent, PendingIntent.FLAG_ONE_SHOT); 

AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); 
alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + (2 * 1000), pendingIntent); 
Toast.makeText(this, "Alarm set", Toast.LENGTH_LONG).show(); 


} 

} 

AlarmReceiver.java:

public final class AlarmReceiver extends BroadcastReceiver { 
@Override 
public void onReceive(Context context, Intent intent) { 
    Toast.makeText(context, "Alarm worked.", Toast.LENGTH_LONG).show(); 

} 
} 

Q1:私はHelloAndroid2.javaにこのコードを配置する場合:

MediaPlayer mp = MediaPlayer.create(getBaseContext(), R.raw.onlyyou); 
`mp.start();` 

それは正常に動作します。

AlarmReceiver.javaにmp.stop()を追加するにはどうすればよいですか? mpが何であるかはわかりません。

Q2:私はAlarmReceiver.javaファイル内のコードを配置する場合は、getBaseContextに問題がある()(言う:タイプAlarmReceiver未定義)

は、私はいくつかの他のコンテキストを使用する必要がありますか?

私は1つのトピックで質問を提起しても大丈夫です。

答えて

0

これは間違った方法です。あなたは、放送受信機で何をしようとしているようなことはしないでください。オーディオを開始したり停止したりするには、サービスでそれを行う必要があります。放送受信機では、サービスに情報を送信して、メディアプレーヤーで何をすべきかを知る必要があります。

+0

ありがとうございました! AlarmReceiver.javaで私はコードを入れます: context.startService(新しいインテント(コンテキスト、MyService.class)); そして、ここで見つけたコードのMyService.javaを作成しました: http://developer.android.com/reference/android/app/Service.html – erdomester