【发布时间】:2013-11-23 11:59:30
【问题描述】:
在Service 我有CountDownTimer。我想将进度数据发送到MainActivity 中的BroadcastReceiver 并设置进度。如何发送此数据和升级进度条?
未调用 MyReceiver。
主活动:
public class MainActivity extends Activity {
public class MyReceiver extends BroadcastReceiver
{
ProgressBar pBar = (ProgressBar) findViewById(R.id.progressBar);
@Override
public void onReceive(Context context, Intent intent) {
int ola = intent.getIntExtra("NUMBER", 0);
pBar.setProgress(ola);
Log.d("dddReceiver" , String.valueOf(ola) ); //can't see
}
}
...
}
服务
public void onStart(Intent intent, int startId) {
String message = (String) intent.getStringExtra("EXTRA_MESSAGE");
timeToWait = Integer.parseInt(message);
CountDownTimer cdt = new CountDownTimer(timeToWait * 1000, 1000) {
int i = 0;
Intent intentBack = new Intent(getApplicationContext(),
MyReceiver.class);
public void onTick(long millisUntilFinished) {
intentBack.putExtra("NUMBER", i);
i++;
sendBroadcast(intentBack);
}
public void onFinish() {
Toast.makeText(getApplicationContext(), "Finished",
Toast.LENGTH_SHORT).show();
i++;
Log.i("dddLongFinish", String.valueOf(i));
}
};
cdt.start();
}
清单
<receiver
android:name="MyReceiver" >
</receiver>
第一次回答后:
11-23 14:20:23.713: W/dalvikvm(20992): threadid=1: 线程退出 未捕获的异常(组=0x400207d8)11-23 14:20:23.723: E/AndroidRuntime(20992):致命异常:主要 11-23 14:20:23.723: E/AndroidRuntime(20992): java.lang.RuntimeException: 无法 实例化活动 组件信息{com.example.serwis/com.example.serwis.MainActivity}: java.lang.NullPointerException 11-23 14:20:23.723: E/AndroidRuntime(20992):在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2585) 11-23 14:20:23.723: E/AndroidRuntime(20992): 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 11-23 14:20:23.723: E/AndroidRuntime(20992): 在 android.app.ActivityThread.access$2300(ActivityThread.java:125) 11-23 14:20:23.723:E/AndroidRuntime(20992):在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 11-23 14:20:23.723: E/AndroidRuntime(20992): 在 android.os.Handler.dispatchMessage(Handler.java:99) 11-23 14:20:23.723:E/AndroidRuntime(20992):在 android.os.Looper.loop(Looper.java:123) 11-23 14:20:23.723: E/AndroidRuntime(20992):在 android.app.ActivityThread.main(ActivityThread.java:4627) 11-23 14:20:23.723:E/AndroidRuntime(20992):在 java.lang.reflect.Method.invokeNative(Native Method) 11-23 14:20:23.723:E/AndroidRuntime(20992):在 java.lang.reflect.Method.invoke(Method.java:521) 11-23 14:20:23.723: E/AndroidRuntime(20992):在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858) 11-23 14:20:23.723: E/AndroidRuntime(20992): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 11-23 14:20:23.723:E/AndroidRuntime(20992):在 dalvik.system.NativeStart.main(本机方法)11-23 14:20:23.723: E/AndroidRuntime(20992):原因:java.lang.NullPointerException 11-23 14:20:23.723: E/AndroidRuntime(20992): 在 android.app.Activity.findViewById(Activity.java:1637) 11-23 14:20:23.723:E/AndroidRuntime(20992):在 com.example.serwis.MainActivity$1.(MainActivity.java:19) 11-23 14:20:23.723:E/AndroidRuntime(20992):在 com.example.serwis.MainActivity.(MainActivity.java:18) 11-23 14:20:23.723:E/AndroidRuntime(20992):在 java.lang.Class.newInstanceImpl(本机方法)11-23 14:20:23.723: E/AndroidRuntime(20992):在 java.lang.Class.newInstance(Class.java:1429) 11-23 14:20:23.723: E/AndroidRuntime(20992):在 android.app.Instrumentation.newActivity(Instrumentation.java:1021) 11-23 14:20:23.723: E/AndroidRuntime(20992): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2577) 11-23 14:20:23.723: E/AndroidRuntime(20992): ... 11 更多
【问题讨论】:
标签: android service broadcastreceiver progress-bar