0

良い一日、

私の主な活動はオブジェクトであり、

public Network netConnection = null;

私の主な活動では、次に呼び出します:

    netConnection = new Network(new Network.OnMessageReceived() {
            @Override
            // here the messageReceived method is implemented
            public void messageReceived(String message) {
                // this method calls the onProgressUpdate
                publishProgress(message);
            }
        });
        netConnection.run();

ここで、新しいアクティビティを作成し、次のコードで実行します。

case R.id.menu_packet: {
        Intent intent = new Intent(this, PacketActivity.class);
        String id = "" + hashCode();
        intent.putExtra("id", id);
        startActivity(intent);
        return true;
    }

with putExtra()私は意図などで物事をやろうとしましたが、うまくいきませんでした。

netConnection の PacketActivity への参照を渡す簡単な方法はありませんか?

私はそれをコピーしたくありません。PacketActivity から netConnection オブジェクトにアクセスできるだけですか?

ありがとう

4

2 に答える 2

1

アプリケーションを拡張し、拡張アプリケーションでsetterメソッドとgetterメソッドを作成して、新しいアクティビティから呼び出すことができます。

ここにチュートリアルの
便利なリンクがあります:
アプリケーションの
拡張アプリケーションを拡張して変数をグローバルに共有する
Androidはアプリケーションの基本を拡張します

例えば

public class myApplication extends Application{
    private myType myObj;

    public void set_myObj(myType theThing){
         myObj = theThing;
    }
    public myType get_myObj(){
         return myObj;
    }    
}

それからあなたからの主な活動:

((myApplication)getApplication()).set_myObj(myObj);

そして2番目の活動から:

myType myObj = ((myApplication)getApplication()).get_myObj();

そして、メモリリークに注意してください..!

于 2013-03-14T11:16:18.103 に答える
0

これは、サービスのユースケースのように聞こえます。

http://developer.android.com/reference/android/app/Service.html

ネットワークオブジェクトを作成したアクティビティが破棄されると、たとえば新しいアクティビティを起動すると、ネットワークオブジェクトもガベージコレクションされるため、参照を渡すことは役に立たないと思います...

于 2013-03-14T11:17:56.273 に答える