【发布时间】:2013-04-04 11:24:18
【问题描述】:
在这里,基本上我所做的就是检查连接是否可用。如果连接不可用,我将重定向到另一个活动。就是这样。但它一直在崩溃。
Intent i;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
i = new Intent(Jsouptesting3Activity.this, NoInternet.class);
Jsouptesting3Activity ob1=new Jsouptesting3Activity();
ob1.isDataConnectionAvailable(this);
try {
doc = Jsoup.connect("http://www.way2franchise.com/").get();
//System.out.println(doc);
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println("cant connect");
e.printStackTrace();
public void isDataConnectionAvailable(Context context){
ConnectivityManager connectivityManager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = connectivityManager.getActiveNetworkInfo();
if(info == null)
{
System.out.println("No net bob");
i = new Intent(Jsouptesting3Activity.this, NoInternet.class);
startActivity(i);
}
System.out.println("YES net bob");
当程序执行时,我正在调用 isDataConnectionAvailable(),但我没有可用的连接。所以根据逻辑,它必须被重定向并且 NoInternet 活动应该打开。
我错过了什么严重的事情吗?
请帮助.
logcat 堆栈
Thread [<1> main] (Suspended (exception RuntimeException))
ActivityThread.performLaunchActivity(ActivityThread$ActivityClientRecord, Intent) line: 1659
ActivityThread.handleLaunchActivity(ActivityThread$ActivityClientRecord, Intent) line: 1675
ActivityThread.access$1500(ActivityThread, ActivityThread$ActivityClientRecord, Intent) line: 121
ActivityThread$H.handleMessage(Message) line: 943
ActivityThread$H(Handler).dispatchMessage(Message) line: 99
Looper.loop() line: 130
ActivityThread.main(String[]) line: 3701
Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) line: not available [native method]
Method.invoke(Object, Object...) line: 507
ZygoteInit$MethodAndArgsCaller.run() line: 866
ZygoteInit.main(String[]) line: 624
NativeStart.main(String[]) line: not available [native method]
【问题讨论】:
-
您的逻辑不正确...首先您不检查
isDataConnectionAvailable()返回的内容...其次,如果info为空,则您不返回false,因此仍然调用Jsoup.connect(...).. . -
我什至不知道从哪里开始,真的。这段代码有很多错误...我该如何解释...
-
1) 手动创建活动实例 (ob1):不! 2) 将
this作为上下文传递给继承Context的Activity 方法:不! 3)认为startActivity()有立竿见影的效果:错! -
@ClassStacker 允许手动创建活动实例。 2)为什么不呢?请详细说明。
-
没什么好说的...这是关于Android平台的基础知识...像Service,Activity这样的应用程序组件不应该由
new创建,而是使用组件特定的方法,如startActivity,startService...