![](/img/trans.png)
[英]How to finish/kill activity from activity stack (Activity is start by service )
[英]How to start an Activity from a Service?
是否可以從服務啟動活動? 如果是的話,我們怎樣才能做到這一點?
android.app.Service
是后代android.app.Context
所以你可以使用startActivity
直接。 但是,由於您在任何活動之外啟動此操作,因此需要在intent上設置FLAG_ACTIVITY_NEW_TASK
標志。
例如:
Intent i = new Intent();
i.setClass(this, MyActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);
this
是你的服務。
即使框架允許您從服務啟動活動,它也可能不是一個合適的解決方案。 原因是服務任務可能或可能不是服務希望與用戶交互時用戶的焦點。 中斷用戶當前正在做的事情被認為是糟糕的設計形式,尤其是應該在后台運行的東西。
因此,您應該考慮使用Notification with Notification Service,當用戶決定調查時,它帶有PendingIntent以啟動所需的Activity。 把它想象為延遲滿足。
我從服務啟動活動時遇到問題,這是由於缺少FLAG_ACTIVITY_NEW_TASK意圖標志。
這肯定會解決你的問題
Intent intent = new Intent();
intent.setAction(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
ComponentName cn = new ComponentName(this, TaxiPlexer.class);
intent.setComponent(cn);
startActivity(intent);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.