0

あるアプリケーションで作成された共有設定値に他のアプリケーションからアクセスしようとしていますが、タスク マネージャーからアプリを閉じた場合にのみデータを取得できます。それ以外の場合、変更は反映されません。

最初のアクティビティ:

btnSignIn.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            // get The User name and Password
            String userName = editTextUserName.getText().toString();
            String password = editTextPassword.getText().toString();
            sharedPreferences = getSharedPreferences(PREFS_READ_WRITE, Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE);
            Editor prefsPrivateEditor = sharedPreferences.edit();
            prefsPrivateEditor.putString(KEY_READ_WRITE, "test");
            prefsPrivateEditor.commit();

To clear:

clear.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            sharedPreferences = getSharedPreferences(PREFS_READ_WRITE, Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE);
            Editor prefsPrivateEditor = sharedPreferences.edit();
            prefsPrivateEditor.clear();
            prefsPrivateEditor.commit();
        }
    });

他のアプリでは、次のように取得しています:

Context otherAppsContext = null;
                try {
                    otherAppsContext = createPackageContext("com.example.app", 0);
                } catch (NameNotFoundException e) {
                }
                sharedPreferences = otherAppsContext.getSharedPreferences(PREFS_READ_WRITE, Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE);
                String authToken=sharedPreferences.getString(KEY_READ_WRITE, "WORLD READ WRITE EMPTY");
                Toast.makeText(getApplicationContext(), authToken, Toast.LENGTH_SHORT).show();
4

1 に答える 1