- how to wake a thread from sleep in android
- private final int delay = 3000;
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.after_hangup);
- getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
- final ImageView pressToLaunchbrowser = (ImageView) findViewById(R.id.after_hang_up_image);
- pressToLaunchbrowser.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- //getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD); // if we want to open the device.
- Intent intent = new Intent(Intent.ACTION_VIEW);
- intent.setData(Uri.parse(url));
- startActivity(intent);
- Thread.interrupted();
- }
- });
- new Thread() {
- public void run() {
- try {
- Thread.sleep(delay);
- finish();
- }
- catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- }.start();
- }}
- import android.app.Activity;
- import android.content.Intent;
- import android.net.Uri;
- import android.os.Bundle;
- import android.os.Handler;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.view.WindowManager;
- import android.widget.ImageView;
- public class NewActivity extends Activity {
- private final int delay = 3000;
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.after_hangup);
- getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
- final ImageView pressToLaunchbrowser = (ImageView) findViewById(R.id.after_hang_up_image);
- final Handler handler = new Handler();
- handler.postDelayed(finishRunnable, delay);
- pressToLaunchbrowser.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- // getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
- // // if we want to open the device.
- Intent intent = new Intent(Intent.ACTION_VIEW);
- intent.setData(Uri.parse(url));
- startActivity(intent);
- handler.removeCallbacks(finishRunnable);
- }
- });
- }
- private Runnable finishRunnable = new Runnable() {
- @Override
- public void run() {
- finish();
- }
- };
- }
- Handler handler = new Handler();
- handler.postDelayed('runnable-that-will-finish-activity', 3000);
- handler.remove('runnable-that-will-finish-activity') ;