Accessing a thread

  • Thread starter Dirk Bruere at NeoPax
  • Start date
D

Dirk Bruere at NeoPax

From: "Dirk Bruere at NeoPax" <dirk.bruere.at.neopax@1:261/38.remove-rf4-this>

From: Dirk Bruere at NeoPax <[email protected]>

File1

public class controller extends Activity {


/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

final LanSendThread lanSendThread = new LanSendThread();
lanSendThread.start();
....}

__________

File2

public class LanSendThread extends Thread{
public static Handler lanSendHandler;

@Override
public void run(){
Looper.prepare();

lanSendHandler = new Handler() {
//stuff}

___________

How do I access the thread lanSendThread from another class in another file?




--
Dirk

Full Spectrum Praxis : ZERO STATE : http://zerostate.net

-+- BBBS/Li6 v4.10 Dada-1
+ Origin: Prism bbs (1:261/38)
-+- Synchronet 3.16a-Win32 NewsLink 1.98
Time Warp of the Future BBS - telnet://time.synchro.net:24

--- BBBS/Li6 v4.10 Dada-1
* Origin: Prism bbs (1:261/38)
--- Synchronet 3.16a-Win32 NewsLink 1.98
Time Warp of the Future BBS - telnet://time.synchro.net:24
 
E

Eric Sosman

To: Dirk Bruere at NeoPax
From: "Eric Sosman" <eric.sosman@1:261/38.remove-rf4-this>

To: Dirk Bruere at NeoPax
From: Eric Sosman <[email protected]>

File1

public class controller extends Activity {


/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

final LanSendThread lanSendThread = new LanSendThread();
lanSendThread.start();
...}

__________

File2

public class LanSendThread extends Thread{
public static Handler lanSendHandler;

@Override
public void run(){
Looper.prepare();

lanSendHandler = new Handler() {
//stuff}

___________

How do I access the thread lanSendThread from another class in another
file?

The same way you'd access it if it were an ArrayList or
a JButton or a File: You save the reference somewhere and dish it out to
interested parties. There must be two or three jillion ways to do this; a few
of them are

- Make `lanSendThread' a public member of the controller
class (poor choice of name, by the way). You may or may
not want to make that member `final'.

- Make `lanSendThread' a private member of the controller
class, and write a public getThread() method to return it.

- Stash the value of `lanSendThread' in a Map or other data
structure, and "publicize" the data structure and/or
accessors for it.

--
Eric Sosman
(e-mail address removed)

-+- BBBS/Li6 v4.10 Dada-1
+ Origin: Prism bbs (1:261/38)
-+- Synchronet 3.16a-Win32 NewsLink 1.98
Time Warp of the Future BBS - telnet://time.synchro.net:24

--- BBBS/Li6 v4.10 Dada-1
* Origin: Prism bbs (1:261/38)
--- Synchronet 3.16a-Win32 NewsLink 1.98
Time Warp of the Future BBS - telnet://time.synchro.net:24
 
D

Dirk Bruere at NeoPax

To: Eric Sosman
From: Dirk Bruere at NeoPax <[email protected]>

To: Dirk Bruere at NeoPax
From: Eric Sosman<[email protected]>



The same way you'd access it if it were an ArrayList or
a JButton or a File: You save the reference somewhere and dish it out to
interested parties. There must be two or three jillion ways to do this; a few
of them are

- Make `lanSendThread' a public member of the controller
class (poor choice of name, by the way). You may or may
not want to make that member `final'.

- Make `lanSendThread' a private member of the controller
class, and write a public getThread() method to return it.

- Stash the value of `lanSendThread' in a Map or other data
structure, and "publicize" the data structure and/or
accessors for it.

--
Eric Sosman
(e-mail address removed)

--- BBBS/Li6 v4.10 Dada-1
* Origin: Prism bbs (1:261/38)
--- Synchronet 3.16a-Win32 NewsLink 1.98
Time Warp of the Future BBS - telnet://time.synchro.net:24

Thanks. It's obvious now!

--
Dirk

Full Spectrum Praxis : ZERO STATE : http://zerostate.net

--- BBBS/Li6 v4.10 Dada-1
* Origin: Prism bbs (1:261/38)
--- Synchronet 3.16a-Win32 NewsLink 1.98
Time Warp of the Future BBS - telnet://time.synchro.net:24
 
R

Roedy Green

To: Dirk Bruere at NeoPax
From: "Roedy Green" <roedy.green@1:261/38.remove-dpk-this>

To: Dirk Bruere at NeoPax
From: Roedy Green <[email protected]>

How do I access the thread lanSendThread from another class in another file?


// execute InParallel.run()
// in parallel to this thread on a new thread.
Thread t = new Thread ( new InParallel() );

// Note we call t.start(), not t.run()
// t.run() would just call run in the ordinary way.

// Get reference to the thread running this
// code right now.
Thread runningNow = Thread.currentThread();

Keep in mind a thread is busy running its own code. Pretty well anything you
run on that thread is going to be highly disruptive.
--
Roedy Green Canadian Mind Products
http://mindprod.com
The greatest shortcoming of the human race is our inability to understand the
exponential function.
~ Dr. Albert A. Bartlett (born: 1923-03-21 age: 89)

-+- BBBS/Li6 v4.10 Dada-1
+ Origin: Prism bbs (1:261/38)
-+- Synchronet 3.16a-Win32 NewsLink 1.98
Time Warp of the Future BBS - telnet://time.synchro.net:24

--- BBBS/Li6 v4.10 Dada-1
* Origin: Prism bbs (1:261/38)
--- Synchronet 3.16a-Win32 NewsLink 1.98
Time Warp of the Future BBS - telnet://time.synchro.net:24
 
D

Dirk Bruere at NeoPax

To: Dirk Bruere at NeoPax
From: "Roedy Green"<roedy.green@1:261/38.remove-dpk-this>

To: Dirk Bruere at NeoPax
From: Roedy Green<[email protected]>




// execute InParallel.run()
// in parallel to this thread on a new thread.
Thread t = new Thread ( new InParallel() );

// Note we call t.start(), not t.run()
// t.run() would just call run in the ordinary way.

// Get reference to the thread running this
// code right now.
Thread runningNow = Thread.currentThread();

I still don't see how this solves my problem.
In "main" (controller) I have:

public static Thread txToLanThreadRef;

TxToLanThread txToLanThread = new TxToLanThread();
txToLanThread.start();
txToLanThreadRef = txToLanThread.runningNow;

However, when I try to access it elsewhere, this does not work

controller.txToLanThreadRef.

I need to access the handler in the thread so I can send it a message
 
M

markspace

public static Thread txToLanThreadRef;


Static variables like this are not considered best practice. Consider
some alternatives, including factories, a context object, or some sort
of generic message system.

However, when I try to access it elsewhere, this does not work

controller.txToLanThreadRef.


"Does not work" is a little unspecific. What error/problem do you get?
Can you make a short, complete, compilable example that duplicates the
problem?

It should work, must work, even, according to the Java programming
language. If there's an issue, it must be with the way you are using
it. Please show us.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads


Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,582
Members
45,065
Latest member
OrderGreenAcreCBD

Latest Threads

Top