0

on create関数で、場所にIDを指定します。ただし、私の問題は、保存する前にそのページに写真を追加するときです。ページと同じIDで写真を保存する必要があります。そのため、作成時にIDを作成し、画像を追加して、他のインテントが読み込まれたときに戻ってくると、コードが再度実行され、新しいIDが作成されます。写真にIDを渡して戻すにはどうすればよいですか。

変数checkStationObjectIDはファイルの先頭に設定されています。

これが私の作成です:

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_add_asset);

        Bundle extras = getIntent().getExtras(); 
        Log.e("CamDebug", "Loading extras");
        if (extras != null) {   
            PreviousStationObjectID = extras.getString("StationObjectID");  
            editMode = extras.getBoolean("editMode");
            editAreaObjectID = extras.getString("editAreaObjectID");

        } 



        if(editMode){
            checkStationObjectID = editAreaObjectID;
             Log.e("CHECK ID - Edit mode", checkStationObjectID);

         } else {

            if(checkStationObjectID == null){
                checkStationObjectID = NewAssetStationObjectID;
                Log.e("CHECK ID = NEW ID", checkStationObjectID);
            } 

        }

       //Other items taken out



    }

私は次のようにカメラを起動します:

public void startCamera() 
{
    File photo = null;
    Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
    timestamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());

    if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)) 
               {
                   photo = new File(Global.Pictures + timestamp +".png");

               } 
    else 
               {
                   photo = new File(getCacheDir(), FOLDER_NAME+File.separator+timestamp+".png");
               }    
    if (photo != null) 
               {
                   intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photo));
                   selectedImageUri = Uri.fromFile(photo);
                   startActivityForResult(intent, CAPTURE_IMAGE_CALLBACK);
               }

}
4

2 に答える 2

0

永続化する必要がない場合は、セッションとして機能するシングルトンオブジェクトを作成し、そこに変数を格納できます。しかし、onCreateが再度実行される理由がわかりません。サブカメラアクティビティが返されるはずだと思いました。 onActivityResult?誤解してしまったらご容赦ください。

または、varをカメラアクティビティに渡して、使い終わったら元に戻すこともできます。

于 2012-11-05T14:37:27.963 に答える
0

onCreateアプリケーションが開始されるたびに呼び出されます。Activityカメラのような別のアプリを呼び出している場合、カメラの実行中はいつでもOSが自分のアプリを強制終了できますActivity。これは、実行中のアプリが必要とするメモリまたはリソースを回復するためである可能性があります。次に、カメラを終了すると、OSがを再起動しますActivity。これにより、が再度呼び出さonCreateれます。

SharedPreferencesカメラアプリを起動する直前に、生成したIDを保存することをお勧めします。次に、に保存されているIDを確認しonActivityResultます。

于 2012-11-05T17:46:26.460 に答える