在Boot,android上将数据传递给Broadcast接收器

时间:2015-09-05 05:34:39

标签: android broadcastreceiver sharedpreferences

提前感谢您的帮助。

我有一个由我的应用中的活动创建的SharedPreference对象。在设备启动时,我怎样才能获得存储在此SharedPreference对象中的值?这就是我到目前为止(由于某种原因它不能在启动时运行/我想在这里启动活动的唯一原因是确保我的DeviceBootReceiver代码正常工作/活动正常工作,因为我已经独立开始了)。请注意,出于隐私原因,我更改了类名

XML     

<uses-sdk
    android:maxSdkVersion="20"
    android:minSdkVersion="17"
    android:targetSdkVersion="17" />

<application
    android:name="app"
    android:launchMode="singleTask"
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:logo="@drawable/ic_launcher"
    android:label="app"
    android:theme="@style/AppTheme" >

    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>

    <activity
        android:name="activity"
        android:label="activity"
        android:icon="@drawable/ic_launcher"
        android:logo="@drawable/ic_launcher"
        android:screenOrientation="portrait"
        android:clearTaskOnLaunch="true"
        android:launchMode="singleTask">


        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <receiver
        android:enabled="true"
        android:name=".DeviceBootReceiver"
        android:permission="android.permission.RECEIVE_BOOT_COMPLETED">

        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </receiver>


</application>

广播代码

public class DeviceBootReceiver extends BroadcastReceiver {

    public void onReceive(Context context, Intent intent) {
        Intent i = new Intent(context, activity.class);
        i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(i);
    }
}

1 个答案:

答案 0 :(得分:0)

就像您在“活动”中一样sharedPreference,但现在使用context

e.g。

context.getSharedPreferences(PREFS_NAME, 0);

PreferenceManager.getDefaultSharedPreferences(context);

取决于您在“活动”中调用它的方式。

修改 <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>应与<application>不在<application>

之内