تعریف broadcastreceiver در اکتیویتی
چطوری میشه یک برد کست رسیور رو داخل اکتیویتی تعریف کرد؟
توضیح: من broadcastreceiver رو به صورتی لازم دارم که فقط وقتی برنامه درحال اجراس عمل کنه + تغییراتی هم روی UI اعمال کنه. بهترین راهی که به ذهنم رسیده این بود که اون رو داخل خود اکتیوتی تعریف کنم (که البته امکان پذیر هم هست). ولی هرکاری میکنم برنامه کرش میکنه.
کدهای داخل منیفست به این صورته:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="ir.hamrahafzar.app.taxi_location"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="8" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<application
android:name=".G"
android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@style/myTheme" >
<activity
android:name=".ActivityStart"
android:label="@string/app_name" >
</activity>
<activity
android:name=".ActivityMain"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
>
</activity>
<receiver android:name=".UpdateReceiver" >
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
<receiver android:name=".receiver" >
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
</application>
</manifest>
اینم کدهایی که استفاده کردم:
BroadcastReceiver receiver;
IntentFilter filter;
filter = new IntentFilter();
filter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(getApplicationContext(), "received", Toast.LENGTH_SHORT);
}
};
@Override
protected void onResume() {
registerReceiver(receiver, filter);
super.onResume();
}
@Override
protected void onPause() {
unregisterReceiver(receiver);
super.onPause();
}
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .