2012-04-07 7 views
1

私は現在開発中です。 ロックされていないアイテムやデバイス間のレベルなどの基本情報を保存する方法と保存する方法を教えてください。 もちろん、私はそれらを環境設定ファイルの中に保存します。デバイス間で情報を同期するための推奨方法

しかし、ユーザーが新しい携帯電話を購入し、そこで再生を続けたい場合はどうなりますか? (Shared-)設定は複製されません。

このように、この問題を解決するには(Googleから)推奨される方法(クラウド?)はありますか?

+0

[バックアップエージェント](http://developer.android.com/guide/topics/data/backup.html)を実装すると、ユーザーが何かばかげたマーケットに使用されているGoogleアカウント。 – Jens

答えて

1

私は専門家ではありませんが、これはオンラインのSQLデータベースを使用する方法です。デバイスに接続し、必要なデータを保存/ロードします。私はファイルでは動作しません、テキストベースの情報だけであることを知っています。私もFlashを使ってこれを行います。これがあなたのルートなら、私はいくつかのコードを共有することができます。

フラッシュでこれを行う場合、Flash(duh)、PHPファイル、SQLサーバー(私はMYSQLサーバーを持っています)の3つが必要です。

どのように動作するのですか?flashはPHPを読み込みます。phpはデータベースに変更を加えたようなことを行い、その結果をフラッシュして戻します。

たとえば、すべてのユーザー名をデータベースから取得したいとします。

"U_ID" と呼ばれるデータベース

テーブル名が単一の列で、 "プレーヤー" と呼ばれている

フラッシュ

var loader:URLLoader; //makes a loader that will "load" the php page 

public function DoIt() 
{ 
    loader = new URLLoader(); 
    loader.addEventListener(Event.COMPLETE, loaderComplete); 
    loader.load(new URLRequest("http://yourDomain.com/thePHPFile.php?arg=42")); 
} 

public function loaderComplete(e:Event):void 
{ 
    var returnXML:XML; //we are assuming the return values are in xml format, trust me, this might be easier 

    for each (var ListItem:XML in returnXML..Users) //you might need to change this "users" to be the root of the xml file 
    { 
     var userName:String = ListItem.u_id.toString(); 
     //you can do what you want with the data here 
    } 
} 

PHP

今必要ないかもしれないDが、私はPHPファイルを確認するために試してみて、私は、それで遊ぶ行く

<?php 

    $argumentVar = $_GET["arg"]; //not using this, just showing it's possible 
    $connect = mysql_connect("localhost", "db_username", "db_password"); 

    if(!$connect) 
    { 
     die("error connecting to DB" . mysql_error()); 
    } 

    $db_selected = mysql_select_db("the_name_of_the_db", $connect); 

    if(!$db_selected) 
    { 
     die("error selecting db" . mysql_error()); 
    } 

    $table_name = "Players" //this is the name of your database 
    $sql = "SELECT * FROM $table_name;"; //not sure if you need ending ';' 

    $dbresult = mysql_query($sql, $connect); //this is where all your data comes into 

    //and now to save all the information to a xml file 
    $doc = new DOMDocument('1.0'); 
$root = $doc->createElement('root'); 
$root = $doc->appendChild($root); 

    while($row = mysql_fetch_assoc($dbresult)) 
{ 
    $occ = $doc->createElement($table_name); 
    $occ = $root->appendChild($occ); 

    foreach ($row as $fieldname => $fieldvalue) 
    { 
     $child = $doc->createElement($fieldname); 
     $child = $occ->appendChild($child); 

     $value = $doc->createTextNode($fieldvalue); 
     $value = $child->appendChild($value); 
    } 
} 

$xml_string = $doc->saveXML(); 
echo $xml_string; 
?> 

[OK]をホスト名として「localhost」を行うことができるようにDBは、同じホスト上にある、それはあなたを開始する必要があります正しい道に

+0

いずれかの方法でコードを共有すると便利です:)(個人の場合は[email protected]) – poitroae

1

私は、すべての登録ユーザーの最新情報で定期的に更新されるオンラインデータベースを維持するのが最善の方法だと思います。したがって、すべてをローカルに格納するのではなく、リモートサーバーに格納して、必要なときにユーザーに送信することができます。ユーザーがアプリケーションのために自分自身で作成したアカウントを所有している限り、データは失われません。

関連する問題