2015-09-05 32 views
0

在此先感謝您的幫助。將數據傳遞到Boot上的廣播接收器,android

我有一個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); 
    } 
} 

回答

0

就在該sharedPreference,你會在你的活動,但現在與context

例如

context.getSharedPreferences(PREFS_NAME, 0); 

PreferenceManager.getDefaultSharedPreferences(context); 

取決於它如何被調用的活動。

編輯: <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>應該是同一級別<application>內部沒有<application>

+0

我怎麼知道這方面將是正確的活動的實例?另外,我擁有的代碼也沒有在啓動時運行。 – HXSP1947

+0

你不需要上下文來做同樣的活動。使用應用程序中的任何上下文,您都可以訪問相同的** Share **首選項 –

+0

好的酷豆。爲什麼我的活動不能在開機啓動? – HXSP1947

相關問題