有没有可靠的方法来获得Context一个Service?
我想注册广播接收器,ACTION_PHONE_STATE_CHANGED但我不需要我的应用程序总是得到这些信息,所以我不把它放在Manifest.
但是,当我需要这些信息时,我不能让GC杀死广播接收器,因此我正在注册广播接收器Service.
因此,我需要一个Context来打电话registerReceiver().当我不再需要时,ACTION_PHONE_STATE_CHANGED我取消注册它.
有小费吗?
我是Android的新手,我正在尝试做一些简单的事情,比如点击按钮时播放自定义MP3.这似乎是一个相当 普遍的 问题,但即使我的代码遵循示例,并且我没有收到任何错误,我在模拟器或真实手机中都听不到任何声音.
我的MainActivity.java:
public class MainActivity extends Activity {
private static final String TAG = "MyActivity";
public void MyActivity(Bundle onSavedStateInstance) {
Log.v(TAG, "Initializing sounds...");
final MediaPlayer mp = MediaPlayer.create(this, R.raw.alarma_67560);
Button play_button = (Button)this.findViewById(R.id.play_button);
play_button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Log.v(TAG, "Playing sound...");
mp.start();
}
});
Log.v(TAG, "Sounds initialized.");
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
还有我的activity_main.xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" …Run Code Online (Sandbox Code Playgroud)