Форум программистов, компьютерный форум CyberForum.ru

BrodcastRecivier - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Пример по ГСЧ http://www.cyberforum.ru/android-dev/thread1243534.html
Доброго времени суток. Решил собрать генератор случайных чисел от 1 до 6 включительно. Вроде бы должен работать, но походу я в выводе на экран ошибся в приведении типов? import java.util.Random; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button;
Программирование Android Контекстное меню в ListView Здравствуйте,выложите пожалуйста рабочий код контекстного меню для listview и напишите пожалуйста куда вставлять этот код. http://www.cyberforum.ru/android-dev/thread1243518.html
Программирование Android Какой метод фрагмента срабатывает после закрытия диалога?
Запускаю FragmentActivity, в методе onResume запускаю DialogFragment. Пока выполняются кое-какие действия, диалог висит, перекрыв FragmnetActivity, но FragmentActivity видно за заднем плане, т.е. в onPause оно не уходит. После всех действий DialogFragment закрывается и снова "фокус" переходит в FragmentActivity: вот в этот момент какой метод срабатывает? onResume не срабатывает, onPostResume тоже...
GetString и оператор ? Программирование Android
В методе onCreate имеется строка myTextView.setText(flag? getString(R.string.my_text) : ""); где flag - это статическая переменная. Первый раз при вызове onCreate система проходит эту строку нормально. Однако, когда при повороте экрана вновь вызывается onCreate проходя эту строку система падает с маловразумительными воплем RuntimeException. Если же строку заменить на if (flag) { ...
Программирование Android Microsoft Office Mobile http://www.cyberforum.ru/android-dev/thread1243318.html
Необходима модификация официального приложения PowerPoint, чтобы программа позволяла менять слайды нажатием кнопок вперед-назад на внешнем манипуляторе, а не только сенсорным движением по экрану. Подскажите пожалуйста это реально сделать? Поправить код в программе или плагин написать? Может быть другие варианты есть? Спасибо.
Программирование Android JSOUP - как правильно спарсить значение за вложенным тегом? На (чужой) странице имеется строка: <p class="num"><span>ONE</span>TWO</p> Вот так: protected String doInBackground(String... links) { Document doc = null; try { doc = Jsoup.connect(links).get(); подробнее

Показать сообщение отдельно
derec
0 / 0 / 0
Регистрация: 29.01.2014
Сообщений: 74

BrodcastRecivier - Программирование Android

17.08.2014, 10:28. Просмотров 334. Ответов 0
Метки (Все метки)

Здравствуйте, есть broadcast

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
package com.test.alarm;
 
import java.text.Format;
import java.text.SimpleDateFormat;
import java.util.Date;
 
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.PowerManager;
import android.sax.StartElementListener;
import android.util.Log;
import android.widget.Toast;
 
public class alarm_manager_broadcast extends BroadcastReceiver {
     public static String ONE_TIME = "onetime";
    @Override
    public void onReceive(Context context, Intent intent) {
        // TODO Auto-generated method stub
         PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
         PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "YOUR TAG");
         
         wl.acquire();
 
    
         Bundle extras = intent.getExtras();
         StringBuilder msgStr = new StringBuilder();
      try{  
          Log.d("g", extras.toString());
 if(intent.getStringExtra("lol").equals("anabolik")){
 
          msgStr.append("Одноразовый будильник: ");
         }}
      catch(Exception e){
      
      }
         Format formatter = new SimpleDateFormat("hh:mm:ss a");
         msgStr.append(formatter.format(new Date()));
 
         Toast.makeText(context, msgStr, Toast.LENGTH_LONG).show();
 Intent iintent;
 iintent = new Intent();
 
 iintent.setClass(context, alarm.class);
 iintent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(iintent);
    
         wl.release();
    }
    
     public void SetAlarm(Context context)
        {
            AlarmManager am=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
            Intent intent = new Intent(context, alarm_manager_broadcast.class);
            intent.putExtra("lol","anabolik"); 
            PendingIntent pi = PendingIntent.getBroadcast(context, 0, intent, 0);
    
            am.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 1000 * 5 , pi);
        
        }
     
        public void CancelAlarm(Context context)
        {
            Intent intent = new Intent(context, alarm_manager_broadcast.class);
            PendingIntent sender = PendingIntent.getBroadcast(context, 0, intent, 0);
            AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
            alarmManager.cancel(sender); 
        }
     
        public void setOnetimeTimer(Context context){
         AlarmManager am=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
            Intent intent = new Intent(context, alarm_manager_broadcast.class);
            intent.putExtra(ONE_TIME, Boolean.TRUE);
            PendingIntent pi = PendingIntent.getBroadcast(context, 0, intent, 0);
            am.set(AlarmManager.RTC_WAKEUP, 1000 * 5, pi);
        }
 
}
и main для его управления

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
package com.test.alarm;
 
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
 
public class MainActivity extends Activity {
 
     private alarm_manager_broadcast alarm;
     Button start,cancel,one;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
         
         start = (Button)findViewById(R.id.btStart);
        cancel = (Button)findViewById(R.id.btCancel);
         one = (Button)findViewById(R.id.btOneTime);
    
         Context context = this.getApplicationContext();
start.setOnClickListener(new View.OnClickListener() {
    
    @Override
    public void onClick(View arg0) {
        // TODO Auto-generated method stub
         Context context = getApplicationContext();
         alarm = new alarm_manager_broadcast();
         if(alarm != null){
          alarm.SetAlarm(context);
         }else{
          Toast.makeText(context, "Alarm is null", Toast.LENGTH_SHORT).show();
         }
    }
});
     
 
 
 
cancel.setOnClickListener(new View.OnClickListener() {
    
    @Override
    public void onClick(View arg0) {
        // TODO Auto-generated method stub
         Context context = getApplicationContext();
         alarm = new alarm_manager_broadcast();
     if(alarm != null){
      alarm.CancelAlarm(context);
     }else{
      Toast.makeText(context, "Alarm is null", Toast.LENGTH_SHORT).show();
     }
 
    }
});
one.setOnClickListener(new View.OnClickListener() {
    
    @Override
    public void onClick(View arg0) {
        // TODO Auto-generated method stub
         Context context = getApplicationContext();
         alarm = new alarm_manager_broadcast();
     if(alarm != null){
      alarm.setOnetimeTimer(context);
     }else{
      Toast.makeText(context, "Alarm is null", Toast.LENGTH_SHORT).show();
     }
 
    }
});
 
 
    }}


проблема в том что broad cast запоминает своё состояние

если нажать кнопку one появится сообщение типа "12:42:31"
а если после этого нажать start то появится такоеже сообщение но с другим временем.


а если при запуске маин'а нажать сначала start то появиться сообщение "одноразовый будильник 12:43:23"
и потом остоновя его кнопокой cancel и нажать one или просто нажать one то появиться опять сообщение "одноразовый будильник 12:44:55"

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

отрывание рук с задницы и приделывания их к плечам не помогает..
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru