我的目標是獲取restpost變量到第二個類,因此它可以通過httppost發送。 有一個SharedPreferences對象已經在用於用戶設置。我已經至少搜索了100次,並檢查了每個相關的帖子。與類之間的SharedPreferences問題,從內部處理程序
主要活動包含此:
private final Handler mHandler = new Handler() {
@SuppressWarnings("deprecation")
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case MESSAGE_STATE_CHANGE:
if(D) Log.i(TAG, "MESSAGE_STATE_CHANGE: " + msg.arg1);
switch (msg.arg1) {
case BTService.STATE_CONNECTED:
setStatus(getString(R.string.title_connected_to,mConnectedDeviceName));
mConversationArrayAdapter.clear();
break;
... //then...eventually this..
Editor editor = sharedPrefs.edit();
editor.putString("restpost", restpost);
editor.commit();
HttpService sendNow = new HttpService();
sendNow.sendData();
第二類是下面。
public class HttpService extends PreferenceActivity{
public void onCreate(Bundle savedInstanceState) {
// super.onCreate(savedInstanceState);
}
public void sendData(){
SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this);
String host = sharedPrefs.getString("host_text", "NULL");
String muser = sharedPrefs.getString("user_text", "NULL");
String mpw = sharedPrefs.getString("pw_text", "NULL");
String maxurl = sharedPrefs.getString("restpost", "NULL");
HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(maxurl);
HttpContext localContext = new BasicHttpContext();
HttpResponse response;
try {
response = httpClient.execute(httpPost);
Log.d("Http Response:", response.toString());
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
最終目標是在激活的BT連接期間執行http事件。這是基於BluetoothChat示例的,如果有幫助的話。 我也有一個處理程序&定時任務運行來反覆執行BT消息 - 每分鐘不超過1個。
這裏的錯誤:
9月11日至21日:08:30.395:E/AndroidRuntime(5012):顯示java.lang.NullPointerException 9月11日至21日:08:30.395:E/AndroidRuntime(5012):在android.conference.PreferenceManager.getDefaultSharedPreferences(PreferenceManager.java:366) 11-Dec 09:08:30.395:E/AndroidRuntime(5012):android.content.ContextWrapper.getSharedPreferences(ContextWrapper.java:160) 11-21 09: 21 09:08:30.395:E/AndroidRuntime(5012):at com.clicsys.motomon.HttpService.sendData(HttpService.java:29) 11-21 09:08:30.395:E/AndroidRuntime(5012):at com .clicsys.motomon.MainActivity $ 3.handleMessage(MainActivity.java:467) 11-21 0 9:08:30.395:E/AndroidRuntime(5012):在android.os.Handler.dispatchMessage(Handler.java:99) 11-21 09:08:30.395:E/AndroidRuntime(5012):在android.os。 Looper.loop(Looper.java:137) 11-21 09:08:30.395:E/AndroidRuntime(5012):at android.app.ActivityThread.main(ActivityThread.java:4950) 11-21 09:08: 30.395:E/AndroidRuntime(5012):at java.lang.reflect.Method.invokeNative(Native Method) 11-21 09:08:30.395:E/AndroidRuntime(5012):at java.lang.reflect.Method.invoke (Method.java:511) 11-21 09:08:30.395:E/AndroidRuntime(5012):at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1004) 11-21 09 :08:30.395:E/AndroidRuntime(5012):at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771) 11-21 09:08:30.395:E/AndroidRuntime(5012):at dalvi k.system.NativeStart.main(本機方法)
謝謝。我可以在第二項活動中調用該方法嗎?這是我所需要的。我只需要做Http Post,並且我不能從主要活動的任何地方 - 注意我的最終目標... – user2752652
我將它製作成擴展AsyncTask的內部類。沒有偏好需要 - 效果很好。感謝您讓我回到正軌上... – user2752652