我有一个通知布局,如下所示:
我的服务正在进行。我想要在按下停止按钮时向我的服务发送通知/事件。通知视图上的点击事件不是必需的。
按下按钮后,我希望我的服务停止。
目前,我正试图通过向活动发送广播来做到这一点(因为我没有找到直接通知服务按钮按下的方法)。
我目前的代码是:
Intent intent = new Intent(this, MediaEventsReceiver.class);
PendingIntent pending = PendingIntent.getActivity(this, 1, intent, 0);
contentView.setOnClickPendingIntent(R.id.btnStop, pending);
我还在清单中添加了reciver:
<receiver android:name=".activities.SplashActivity$MediaEventsReceiver" />
请使用代码示例进行解释。
答案 0 :(得分:4)
<强>解决:强>
我使用了PendingIntent点击按钮时调用的另一个活动。 新活动绑定服务并向其发送停止消息。 在它之后,它解开并完成。
<强> STILL:强>
我想要一个不涉及第三项活动的解决方案。应该是按钮单击通知直接通知服务和服务停止的方式。此任务不需要任何活动。
答案 1 :(得分:2)
我正在使用SINGLE活动开发音乐播放器应用。您可以像这样在按钮中添加监听器:
Intent intent = new Intent("ACTION_NAME");
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
views.setOnClickPendingIntent(R.id.previousImageView, pendingIntent);
private class ActionBroadcastReceiver extends BroadcastReceiver
{
public void onReceive(Context context, Intent intent)
{
switch (intent.getAction())
{
case "ACTION_NAME":
{
doSomething();
break;
}
}
}
}
IntentFilter filter = new IntentFilter();
filter.addAction("ACTION_NAME");
ActionBroadcastReceiver actionBroadcastReceiver = new ActionBroadcastReceiver();
registerReceiver(actionBroadcastReceiver, filter);