【发布时间】:2014-04-24 12:28:37
【问题描述】:
当我按下“免提”按钮时,MediaButtonIntentReceiver 代码被调用,Main 活动在屏幕上打开,Toast 出现。
每次我按下按钮时,都会发生这种情况,但我希望它只在第一次发生。第二次按下按钮时,我只想显示 toast,因为活动已经打开。
Main.java
public class Main extends Activity
{
private AudioManager mAudioManager;
private ComponentName mAudioReceiver;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mAudioManager = (AudioManager) getSystemService(AUDIO_SERVICE);
mAudioReceiver =
new ComponentName(getPackageName(), MediaButtonIntentReceiver.class.getName());
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
@Override
protected void onResume()
{
super.onResume();
mAudioManager.registerMediaButtonEventReceiver(mAudioReceiver);
}
@Override
protected void onPause()
{
super.onPause();
// mAudioManager.unregisterMediaButtonEventReceiver(mAudioReceiver);
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
MediaButtonIntentReceiver.java
public class MediaButtonIntentReceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
Toast.makeText(context, "Handfree Button Pressed", Toast.LENGTH_SHORT).show();
Intent i = new Intent(context, Main.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
// abortBroadcast();
}
}
【问题讨论】:
标签: android android-activity broadcastreceiver