![](/img/trans.png)
[英]how to make an Intent show up instead of the main Activity when i start the application
[英]How i start a function in main activity when intent service stop?
我創建具有警報服務的應用程序並在用戶設置Timepicker時播放警報mp3文件。警報服務類從帶有警報管理器的廣播接收器開始...我希望在停止警報服務返回主活動並啟動發送功能時藍牙數據。我該怎么做?我嘗試用第二個接收器但沒有工作...
public class AlarmService extends IntentService {
public String response="";
MediaPlayer mPlayer;
public AlarmService() {
super("AlarmService");
}
// Will be called asynchronously be Android
@Override
protected void onHandleIntent(Intent intent) {
mPlayer = MediaPlayer.create(AlarmService.this, R.raw.alarm);
mPlayer.start();
String data="start";
Intent intentsend=new Intent("update");//Send data to update UI
intentsend.putExtra( "Alarmdata",data);
sendBroadcast(intentsend);
}
在主要活動中...
@Override
public void onResume() {
super.onResume();
updateReceiver=new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intentsend) {
//get extras, do some stuff
String data1 = intentsend.getStringExtra("Alarmdata");
if(data1=="start"){
String data2="1";
Toast.makeText(context, "Test updateReceiver!",Toast.LENGTH_LONG).show();
try {
sendData(data2);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
};
IntentFilter updateIntentFilter=new IntentFilter("update");
registerReceiver(updateReceiver, updateIntentFilter);
}
使用Handler和Messaging來實現您想要的一個簡單示例。
首先發送一條消息,說明您的工作已經完成
Message message = new Message();
message.getData().putString("text",
"exitedtask");
Messenger messenger = new Messenger(
completionHander);
try {
messenger.send(message);
} catch (RemoteException e) {
e.printStackTrace();
}
然后使用處理程序處理應該發生的情況
protected Handler completionHander = new Handler() {
@Override
public void handleMessage(Message msg) {
if (msg.getData().getString("text")
.equalsIgnoreCase("exitedtask")) {
//do you work here
}
}
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.