我的應用程序由許多活動和BraodcastReceiver
組成。我想重新開始一個活動,如果它在前臺時我的應用程序收到廣播Intent.How我可以實現它嗎?從BroadCast接收器開始工作
1
A
回答
2
使用Intent.FLAG_ACTIVITY_REORDER_TO_FRONT可以將活動發送到其任務歷史堆棧的前面(如果它已經在運行),如果沒有,則以新的方式啓動。做出確認是否活動正在運行或不使用ActivityManager
@Override
public void onReceive(Context context, Intent intent) {
//start activity
if(isRunning(context)){
Intent i = new Intent(context,Your_Activity_Name.class);
i.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
context.startActivity(i);
}
else{
// Activity not available in activity stack
}
}
public boolean isRunning(Context ctx) {
ActivityManager activityManager = (ActivityManager)
ctx.getSystemService(Context.ACTIVITY_SERVICE);
List<RunningTaskInfo> tasks =
activityManager.getRunningTasks(Integer.MAX_VALUE);
for (RunningTaskInfo task : tasks) {
if (ctx.getPackageName().equalsIgnoreCase(
task.baseActivity.getPackageName()))
return true;
}
return false;
}
,也可以設置android:noHistoryAndroidManifest.xml
不再可見存儲在活動組活動在屏幕上:
<activity
android:noHistory="false"
android:name=".Your_Activity" />
0
使活動singleTop
,只是發送意圖。
相關問題
- 1. Android中的服務沒有開始在BroadCast接收器
- 2. BroadCast接收器錯誤
- 3. 爲什麼我的BroadCast接收器不工作?
- 4. 開始廣播接收器
- 5. 第二個BroadCast接收器不運行
- 6. Android BroadCast接收器震動和沉默
- 7. 啓動時的BroadCast接收器
- 8. 將數據從活動傳遞給BROADCAST接收器
- 9. 如何開始接收來自Broadcast Receiver類的PATICULAR SMS的活動
- 10. AlarmManager不能從開機服務接收器工作
- 11. 廣播接收器上開始
- 12. 開始的onReceive廣播接收器
- 13. Windows工作流:開始從工作流
- 14. 僅從根開始工作
- 15. 從前端開始工作
- 16. 從主題開始接收消息
- 17. SmsBroadcast接收器不工作
- 18. 接收器不工作
- 19. 如何從一個廣播接收器開始一個活動
- 20. 從屏幕上的接收器延遲開始活動關閉
- 21. 如何在從服務器接收結果後開始活動?
- 22. 從廣播接收器開始的Android服務
- 23. 我無法從廣播接收器開始活動
- 24. 意圖服務不從廣播接收器調用時開始
- 25. 從android廣播接收器開始一個活動
- 26. broadCast接收器永遠不會被調用
- 27. Android BroadCast接收器線程通知SD卡移除
- 28. 取消通知已經使用AlarmManager和BroadCast接收器設置
- 29. BroadCast接收器,待定意圖和服務混淆選擇
- 30. UDP套接字開始無法接收
*「Your_Activity_Name.this」 * - 即應該是'.class'而不是'.this' – Squonk
@Squonk:感謝只是錯誤當我打字 –
沒問題 - 我們都犯這樣的錯誤。 :) – Squonk