我有一個活動Main.java在我的應用程序中打開,我想關閉使用廣播接收器的活動,如何關閉活動?使用BroadcastReceiver關閉活動
回答
首先你的Main.java需要註冊爲接收者。你可以在Main.java的的onResume()進行註冊:
@Override
public void onResume() {
registerReceiver(broadcastReceiver, new IntentFilter(BroadcasterClassName.NAME_OF_ACTION));
}
然後處理廣播和完成你的活動:
private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(BroadcasterClassName.NAME_OF_ACTION)) {
finish();
}
}
}
這是最好的方法 – jtwigg
@Jack Sobremonte謝謝你的回答,我接受你的代碼,但我有兩個java類文件main.java是我的活動,receiver.java是我的廣播接收文件,然後我如何使用接收器類文件調用活動... – appukrb
然後,您的Main.java需要擴展Receiver,並且Receiver.java將擴展活動 – jesobremonte
你可以這樣做: 在你的主要有:
private static Main mInstance;
onCreate()
{
...
mInstance = this;
}
public static boolean closeActivity()
{
if (mInstance != null)
{
mInstance.finish();
return true;
}
return false;
}
雖然,這意味着只有一個主要存在於任何一個時間。我認爲你可以通過在清單中添加android:noHistory =「true」或類似的東西來實現。
我怎麼從廣播接收機打電話 – appukrb
你可以發送郵件到它實現Handler.Callback活性,在那裏處理它以關閉活動。
簡單的例子:
class Act1 extends Activity implements Handler.Callback {
public static final int CLOSE_ACTIVITY = 54212;
public boolean handleMessage(Message msg) {
if(msg.what == CLOSE_ACTIVITY) {
finish();
}
}
}
然後,因爲你廣播接收器可以運行在主線程,在大多數情況下。只需通過Handler發送消息。
new Handler().sendMessage(MessageFactory.createShutdownMsg()).
MessageFactory沒有在任何包中給出。 – Ajeet
請提供'MessageFactory'的實現/庫 –
- 1. 使用Intent.createChooser關閉活動
- 2. 如果活動關閉,BroadcastReceiver是否會被註銷
- 3. 關閉2活動
- 4. Android - 使用VideoView延遲關閉活動
- 5. 使用RMySQL關閉活動連接
- 6. 使用BasicDataSource關閉非活動會話
- 7. SharedPreferences - 活動和BroadcastReceiver
- 8. 活動中的BroadcastReceiver
- 9. Android:在關閉WiFi時關閉活動
- 10. GCM關閉活動的活動
- 11. 用broadcastreceiver重新啓動主要活動?
- 12. 無法關閉活動
- 13. svg:激活/關閉動畫
- 14. 關閉所有活動
- 15. 關閉android中的活動
- 16. 關閉android子活動
- 17. 關閉另一個活動
- 18. 關閉一項活動
- 19. 的Android,活動被關閉
- 20. 關閉第三方活動
- 21. 關閉後臺活動
- 22. 安卓「關閉」活動
- 23. 如何關閉OpenGL活動
- 24. 旋轉活動關閉
- 25. progressbar活動力量關閉
- 26. 關閉活動TabHost退出
- 27. 關閉活動後執行
- 28. Android:從BroadcastReceiver開始活動
- 29. BroadcastReceiver而不是活動
- 30. 從BroadcastReceiver開始活動
我在問有沒有辦法實現這個? – appukrb