当我的服务开始时,我想点击按钮
这是我的代码:当我调用方法从活动到服务时,我的应用程序停止工作 按钮停止录制
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
}
// The service is starting, due to a call to startService()
MainActivity mc;
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
mc = new MainActivity();
mc.btn.post(new Runnable() {
@Override
public void run() {
mc.btn.performClick();
}
});
}
我之前的代码我把它放在OnStartCommend中:停止录制 我使用另一项服务来启动记录,当我使用其他服务停止记录我的应用程序停止工作时,它工作正常,这是我的代码停止录制
recorder.stop();
recorder.release();
ContentValues values = new ContentValues(4);
long current = System.currentTimeMillis();
values.put(MediaStore.Audio.Media.TITLE, "audio" + audiofile.getName());
values.put(MediaStore.Audio.Media.DATE_ADDED, (int) (current / 1000));
values.put(MediaStore.Audio.Media.MIME_TYPE, "audio/amr");
values.put(MediaStore.Audio.Media.DATA, audiofile.getAbsolutePath());
ContentResolver contentResolver = getContentResolver();
Uri base = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
Uri newUri = contentResolver.insert(base, values);
sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, newUri));
答案 0 :(得分:0)
您可以使用BroadCastReceiver处理服务之外的任何操作或事件。
流程吼叫:
在Button OnClickListener()中,您使用自定义操作发送BroadCast
例如:static final String ACTION_BUTTON_CLICK = "action.custom.button.click";
您在服务中创建并注册广播接收器以上操作
答案 1 :(得分:0)
您可以通过发送广播来完成此操作。从按钮的onClick
发送广播,然后在服务中接收广播并做任何你喜欢的事情。
有关广播,请参阅here