Programming Tutorials

(追記) (追記ここまで)

A sample J2ME Auto-resume program.

By: Emiley J in J2ME Tutorials on 2007年09月22日 [フレーム]

Do you need to create an application that does auto-resume (after a phone-call, or whenever a flip-phone is opened). Here is a sample J2ME Auto-resume program.

The resumeRequest must not be called from the "App manager interface". So the sample auto resume program below runs a separate thread that calls resumeRequest().

Listed below is the source code. There are 2 classes, AutoResume and AutoResumeThread.

//------------------------ AutoResume.java --------------------------------

import javax.microedition.lcdui.*;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
public class AutoResume extends MIDlet {
 private Form mainForm;
 private StringItem message;
 private int nPause;
 public boolean isPaused;
 public AutoResume() {
 super();
 mainForm = new Form("Auto-Resume");
 message = new StringItem("Message:", "Message here");
 mainForm.append(message);
 nPause = 0;
 isPaused = true;
 }
 protected void startApp() throws MIDletStateChangeException {
 isPaused = false;
 System.out.println("startApp");
 Display.getDisplay(this).setCurrent(mainForm);
 message.setText("Paused " + nPause + " times");
 }
 protected void pauseApp() {
 nPause++;
 isPaused = true;
 System.out.println("pauseApp");
 AutoResumeThread t = new AutoResumeThread(this);
 t.start();
 }
 protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
 System.out.println("destroyApp");
 }
}

//-------------------- end of AutoResume.java ---------------------------

//-------------------- AutoResumeThread.java ----------------------------

public class AutoResumeThread extends Thread {
 private AutoResume m_mainThread;
 public AutoResumeThread(AutoResume mainThread) {
 m_mainThread = mainThread;
 }
 public void run() {
 int nSleep = 0;
 while (m_mainThread.isPaused) {
 try {
 System.out.println("Sleeping");
 sleep(1000);
 } catch (InterruptedException e) {
 System.out.println(e.toString());
 }
 nSleep++;
 if (nSleep == 5) {
 System.out.println("Requesting resume");
 nSleep = 0;
 m_mainThread.resumeRequest();
 }
 }
 }
}

//------------------- end of AutoResumeThread.java ------------------------




(追記) (追記ここまで)


Add Comment

JavaScript must be enabled for certain features to work
* Required information
1000

Comments

No comments yet. Be the first!
(追記) (追記ここまで)
(追記) (追記ここまで)

AltStyle によって変換されたページ (->オリジナル) /