Service中启动Activity失败

Sodino 2010-11-11 12:16:33
程序运行后启动类是Act,点击Act中的StartService按钮启动MainService,MainService.onStart()方法中调用 startActivity(intent)来启动TestActivity,最后结果是TestActivity并没有显示出来,屏幕全部是黑色的。程序没有报错。
Activity与Service都已在AndroidManifest.xml中注册了

请问这是怎么回事呢?谢谢...
代码如下:


package lab.sodino.serviceactivity;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class Act extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btnStartService = (Button) findViewById(R.id.btnStartService);
btnStartService.setOnClickListener(new Button.OnClickListener() {
public void onClick(View view) {
Intent intent = new Intent(Act.this, MainService.class);
Act.this.startService(intent);
}
});
}
}



package lab.sodino.serviceactivity;

import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.util.Log;

public class MainService extends Service {

public IBinder onBind(Intent arg0) {
return null;
}

public void onStart(Intent intent, int startID) {
Log.d("ANDROID_INFO", "Service onStart:startID=" + startID);
Intent tancIntent = new Intent(getApplicationContext(),
TestActivity.class);
tancIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(tancIntent);
Log.d("ANDROID_INFO", "Service onStart End");
}
}




package lab.sodino.serviceactivity;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;

public class TestActivity extends Activity {
public void onCreated(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//以下两句Log都没有被输出,onCreate()方法未被运行。屏幕全部是黑色
Log.d("ANDROID_INFO","TANCActivity.onCreated Start");
TextView textView = new TextView(this);
textView.setText("Show TestActivity");
textView.setTextSize(20.0f);
textView.setTextColor(0xff0000ff);
textView.setBackgroundColor(0xffffffff);
setContentView(textView);
Log.d("ANDROID_INFO","TANCActivity.onCreated OK");
}
}

...全文
1131 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Sodino 2010-11-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 theodore_lin 的回复:]

不对,不对,我看错了……

你的程序没什么问题啊,在我这里能正确执行。
能看到testactivity,白底蓝字
[/Quote]

谢谢,你能把你的工程打包发给我吗?我对比下..

sodinoopen@hotmail.com
hyfeng_ccle 2010-11-11
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 dinjay 的回复:]
如果要动态添加,需要指定所属的linearlayout,

Java code

LinearLayout layoutParent = new LinearLayout(getContext());
LinearLayout.LayoutParams params1 = new LinearLayout.LayoutParams( ……
[/Quote]


setContentView(textView);
改成setContentView(layoutParent);
hyfeng_ccle 2010-11-11
  • 打赏
  • 举报
回复
楼上paramsl应该在LinearLayout之前创建,然后创建LinearLayout时添加paramsl,其他如楼上所言。
dinjay 2010-11-11
  • 打赏
  • 举报
回复
如果要动态添加,需要指定所属的linearlayout,

LinearLayout layoutParent = new LinearLayout(getContext());
LinearLayout.LayoutParams params1 = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
TextView textView = new TextView(this);
textView.setText("Show TestActivity");
textView.setTextSize(20.0f);
textView.setTextColor(0xff0000ff);
textView.setBackgroundColor(0xffffffff);
layoutParent.addView(textView);
setContentView(textView);

就可以了
Theodore_Lin 2010-11-11
  • 打赏
  • 举报
回复
不对,不对,我看错了……

你的程序没什么问题啊,在我这里能正确执行。
能看到testactivity,白底蓝字
hyfeng_ccle 2010-11-11
  • 打赏
  • 举报
回复
打开的只有窗口,需要添加布局类,创建方法也如TextView
Theodore_Lin 2010-11-11
  • 打赏
  • 举报
回复
TestActivity缺少布局文件

加上setContentView(R.layout.自定义的布局);就没事了。
Sodino 2010-11-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 theodore_lin 的回复:]

不对,不对,我看错了……

你的程序没什么问题啊,在我这里能正确执行。
能看到testactivity,白底蓝字
[/Quote]

谢谢你,呵呵,知道问题了


昨天敲代码时间已经很晚了,眼一花,手一颤,在TestActivity中的onCreate()方法多加了个字母d导致错误。

呵呵,谢谢
Theodore_Lin 2010-11-11
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 sodino 的回复:]


谢谢,你能把你的工程打包发给我吗?我对比下..

sodinoopen@hotmail.com
[/Quote]

好的,发给你了。

80,488

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧