Переопределение простоя в Android

1

Я создаю приложение, и я бы хотел переопределить тайм-аут приложения. Я бы хотел, чтобы он никогда не затягивался, как и большинство игр. Кто-нибудь знает, как вы это сделаете. Я уже давно троллинг в интернете, и я не уверен.

iPhone isleleTimeout = NO;

Super easy, есть ли какие-либо глобальные настройки, которые я могу использовать в Android? Я не вижу ничего в разработчиках Android или на любых веб-страницах, на которые я смотрел.

Спасибо, тонна!

У меня есть второй ответный вопрос. У меня также есть утечка памяти. Здесь код [код] пакет fourguys.testing.IntentTest;

import android.app.Activity; import android.media.MediaPlayer; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.media.MediaPlayer; import android.media.AudioManager; import android.content.Context;

Открытый класс CanvasDrawingActivity расширяет действие {

private static final int FIRE = 0;
private int initVolume = 0;
private Handler handler;
private MyCanvas v;
private MediaPlayer mp;
private AudioManager am;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    am = (AudioManager)this.getSystemService(Context.AUDIO_SERVICE);

        // this method gets the current volume setting for music
        initVolume = am.getStreamVolume(AudioManager.STREAM_MUSIC);


        am.setStreamVolume(AudioManager.STREAM_MUSIC,100,AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);

    mp = MediaPlayer.create(this, R.raw.test);

    makeHandler();
    v =new MyCanvas(this);
    new Thread(new Runnable(){
        @Override
        public void run() {
            while(true)
                handler.sendEmptyMessage(FIRE); 
        }}).start();
    setContentView(v);
    mp.setLooping(true);
    mp.start();
}
private void makeHandler()
{
    handler  = new Handler(){

        @Override
        public void handleMessage(Message msg) {
            switch(msg.what)
            {
            case FIRE:
            {
                v.invalidate();
                break;
            }
            }
        }

    };
}
protected void onPause() {
    super.onPause();
    mp.stop();
}
protected void onFinish() {
    mp.stop();
}

}

[/код]

и это:

[код] пакет fourguys.testing.IntentTest;

import android.app.Activity; import android.content.Intent; import android.media.MediaPlayer; import android.os.Bundle; импортировать android.view.View; import android.widget.Button; import android.view.WindowManager;

Открытый класс IntentTest расширяет действие {   /** Вызывается, когда действие сначала создается. */

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

    //reciever intentReceiver = new reciever();

   // IntentFilter intentFilter = new IntentFilter("com.app.REC");

    //registerReceiver(intentReceiver, intentFilter); 
    Button b = (Button)this.findViewById(R.id.endButton);
    b.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent i = new Intent(IntentTest.this,CanvasDrawingActivity.class);
            startActivity(i);

        }
     });
 }
// the onPause method get called when the app is either being hidden or being closed so this the place where we would want to clean anything up like stoping the media player.
@Override
protected void onPause()
{
    super.onPause();
}
}

[/код]

Я запускаю приложение, и он становится неустойчивым при выходе. Он блокирует трубку и заставляет батарею работать горячим. Мне нужно физически вытащить аккумулятор для перезагрузки. Любые мысли о том, почему это может быть? Он бежит фантастически на эмуляторе. Должен ли я использовать onFinish вместо этого, или я что-то не убираю, и я его пропускаю?

Теги:

2 ответа

6

Не используйте для этого блокировку слежения, вместо этого установите свое окно, чтобы экран отображался во время отображения. Система позаботится о деталях. Из вашей деятельности:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
  • 0
    Сладкий, ты У меня есть другой немного другой вопрос. Мое приложение имеет утечку памяти. Я использую onPause для очистки при выходе из приложения. Было несколько предложений сделать это. Когда я выхожу из приложения, он ломает мою тестовую трубку. Я думаю, что он либо не выходит из моего холста должным образом, либо неправильно выходит из моего экземпляра медиаплеера. есть идеи? Должен ли я использовать onFinish () вместо этого? Многие люди категорически сказали нет, но мне нужно это застегнуть.
  • 0
    Вы должны задать это как отдельный вопрос, чтобы другие могли его найти. :)
1

Это то, что вы ищете? Вы можете заставить экран, процессор и т.д. Бодрствовать, используя PowerManager и блокировки от бодрствования:

http://developer.android.com/reference/android/os/PowerManager.html

Просто убедитесь, что вы не злоупотребляете этой функцией, вы должны иметь код, который освобождает блокировки, как только сможете.

  • 0
    Это может быть. Я в основном не хочу, чтобы время экрана истекло. Приложение должно оставаться в фокусе, пока оно не будет завершено вручную.
  • 0
    Да тогда. С помощью SCREEN_BRIGHT_WAKE_LOCK вы можете заставить экран оставаться включенным на полную яркость. Это также автоматически поддерживает процессор, проверьте таблицу в этой статье для деталей.
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню